diff --git a/src/main/java/de/telefonbuch/TelefonbuchController.java b/src/main/java/de/telefonbuch/TelefonbuchController.java
index 9a0d1105a122f9efa913c09f9ec4f11dfab0582f..5fb7490783ac2a539df77d0f6462af0dd3e33b13 100644
--- a/src/main/java/de/telefonbuch/TelefonbuchController.java
+++ b/src/main/java/de/telefonbuch/TelefonbuchController.java
@@ -235,11 +235,15 @@ public class TelefonbuchController {
 		txtTelefon.focusedProperty().addListener((observableValue, aBoolean, t1) -> {
 			/* Prüfen ob das Feld verändert wurde */
 			if (!t1) {
+				if(!kontakt.getTelefon().equals("")) {
+					kontakt.setId(kontakt.getTelefon());
+				}
 				/* Wenn die Nummer korrekt ausgefüllt wurde und der Kontakt bereits in der DB enthalten war, den Kontakt löschen und neu anlegen */
 				if (!txtTelefon.getText().equals("") && txtTelefon.getText() != null && !txtTelefon.getText().equals(kontakt.getTelefon())) {
 					if (App.eintraege.containsKey(txtTelefon.getText())) {
 						fehler.showErrorDialog("error", "", "Es gibt bereits einen Eintrag im Adressbuch mit dieser Telefonnummer. Die Telefonnummer muss eindeutig sein.");
 					} else {
+						kontakt.setTelefon(txtTelefon.getText());
 						deleteKontakt(false);
 						saveKontakt();
 					}
@@ -286,14 +290,13 @@ public class TelefonbuchController {
 		} else {
 			App.eintraege.remove(txtTelefon.getText());
 		}
-
-
 	}
 
 	/**
 	 * Kontakt in die Treemap speichern
 	 */
 	private void saveKontakt() {
+		System.out.println(kontakt.toString());
 		if (!kontakt.getTelefon().equals("")) {
 			App.eintraege.put(kontakt.getTelefon(), kontakt);
 			db.addKontakt(kontakt);
diff --git a/src/main/java/de/telefonbuch/model/Datenbank.java b/src/main/java/de/telefonbuch/model/Datenbank.java
index 11193ca6d799b8a86e6953adb4b3585b9df48f92..f51e83264bbabeec86cf1a05bad144caacefbf2f 100644
--- a/src/main/java/de/telefonbuch/model/Datenbank.java
+++ b/src/main/java/de/telefonbuch/model/Datenbank.java
@@ -1,9 +1,6 @@
 package de.telefonbuch.model;
 
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-import java.sql.Statement;
+import java.sql.*;
 
 public class Datenbank {
 
@@ -47,15 +44,40 @@ public class Datenbank {
 		try {
 			Statement stmt = this.con.createStatement();
 
-			String insertKontakt = "INSERT OR REPLACE INTO kontakte (vorname, nachname, strasse, hnr, plz, ort, telefon) VALUES (" +
-					"\"" + kontakt.getVorname() + "\", " +
-					"\"" + kontakt.getNachname() + "\", " +
-					"\"" + kontakt.getStrasse() + "\", " +
-					"\"" + kontakt.getHausnummer() + "\", " +
-					"\"" + kontakt.getPlz() + "\", " +
-					"\"" + kontakt.getOrt() + "\", " +
-					"\"" + kontakt.getTelefon() + "\" " +
-					");";
+			String checkKontakt = "SELECT id FROM kontakte WHERE telefon=\"" + kontakt.getId() + "\";";
+			ResultSet checkResult = stmt.executeQuery(checkKontakt);
+
+			int rows = 0;
+			while(checkResult.next()) {
+				rows++;
+			}
+
+			System.out.println("Rows: " + rows);
+
+			String insertKontakt;
+
+			if (rows == 1) {
+				insertKontakt = "UPDATE kontakte SET " +
+						"vorname=\"" + kontakt.getVorname() + "\", " +
+						"nachname=\"" + kontakt.getNachname() + "\", " +
+						"strasse=\"" + kontakt.getStrasse() + "\", " +
+						"hnr=\"" + kontakt.getHausnummer() + "\", " +
+						"plz=\"" + kontakt.getPlz() + "\", " +
+						"ort=\"" + kontakt.getOrt() + "\", " +
+						"telefon=\"" + kontakt.getTelefon() + "\" " +
+						" WHERE telefon=" + kontakt.getId() + ";";
+			} else {
+				insertKontakt = "INSERT INTO kontakte (vorname, nachname, strasse, hnr, plz, ort, telefon) VALUES (" +
+						"\"" + kontakt.getVorname() + "\", " +
+						"\"" + kontakt.getNachname() + "\", " +
+						"\"" + kontakt.getStrasse() + "\", " +
+						"\"" + kontakt.getHausnummer() + "\", " +
+						"\"" + kontakt.getPlz() + "\", " +
+						"\"" + kontakt.getOrt() + "\", " +
+						"\"" + kontakt.getTelefon() + "\" " +
+						");";
+			}
+			System.out.println(insertKontakt);
 			System.out.println(stmt.execute(insertKontakt));
 		} catch (SQLException e) {
 			e.printStackTrace();
diff --git a/src/main/java/de/telefonbuch/model/Kontakt.java b/src/main/java/de/telefonbuch/model/Kontakt.java
index 87e0cbc848ab0d155be2130fec746c6e135c6866..2d88a3f52ffb73c41ceba45c2f27f9413e5f3054 100644
--- a/src/main/java/de/telefonbuch/model/Kontakt.java
+++ b/src/main/java/de/telefonbuch/model/Kontakt.java
@@ -5,7 +5,14 @@ package de.telefonbuch.model;
  */
 public class Kontakt {
 	// region 0 Variables
-	private String vorname, nachname, strasse, hausnummer, plz, ort, telefon = "";
+	private String vorname = "";
+	private String nachname = "";
+	private String strasse = "";
+	private String hausnummer = "";
+	private String plz = "";
+	private String ort = "";
+	private String telefon = "";
+	private String id = "";
 	//endregion
 
 	// region 1 Setter
@@ -181,5 +188,13 @@ public class Kontakt {
 	private boolean isNumeric(String s) {
 		return s != null && s.matches("[-+]?\\d*\\.?\\d+");
 	}
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
 	//endregion
 }