diff --git a/appointment-import/src/main/java/smash/appointment/parse/Subject.java b/appointment-import/src/main/java/smash/appointment/parse/Subject.java
index 5e76186c2fe92f2455d2a91a45c61b21e20a63a6..b39a2ce5128b3cd3e7d3db04628e3429d6086d24 100644
--- a/appointment-import/src/main/java/smash/appointment/parse/Subject.java
+++ b/appointment-import/src/main/java/smash/appointment/parse/Subject.java
@@ -331,7 +331,7 @@ public class Subject {
 	public void setPhone3(String phone3) {
 		if (phone3 != null && phone3.length() > 20) {
 			logger.warn("Invalid phone. Ignoring: " + phone3);
-		} else if (phone3!=null){
+		} else if (phone3 != null) {
 			this.phone3 = phone3.replace(",", "");
 		}
 	}
@@ -474,14 +474,14 @@ public class Subject {
 		setDiagnosisYear(getMergedValue("diagnosisYear", this.getDiagnosisYear(), subject.getDiagnosisYear(), errorPrefix));
 		setDiagnosis(getMergedValue("diagnosis", this.getDiagnosis(), subject.getDiagnosis(), errorPrefix));
 		setReferal(getMergedValue("referal", this.getReferal(), subject.getReferal(), errorPrefix));
-		setAddDate(getMergedValue("addDate", this.getAddDate(), subject.getAddDate(), errorPrefix));
+		setAddDate(getMergedValue("addDate", this.getAddDate(), subject.getAddDate(), errorPrefix, true));
 		setmPowerId(getMergedValue("mPowerId", this.getmPowerId(), subject.getmPowerId(), errorPrefix));
 		setType(getMergedValue("type", this.getType(), subject.getType(), errorPrefix));
 		setResigned(this.isResigned() || subject.isResigned());
 		setDead(this.isDead() || subject.isDead());
 		setPostponed(this.isPostponed() || subject.isPostponed());
 		// override only when to be seen by flying team
-		if (subject.getToBeSeenAt()!=null && subject.getToBeSeenAt().equals("F")) {
+		if (subject.getToBeSeenAt() != null && subject.getToBeSeenAt().equals("F")) {
 			setToBeSeenAt(subject.getToBeSeenAt());
 		}
 		addLanguages(subject.getLanguages());
@@ -501,14 +501,22 @@ public class Subject {
 	}
 
 	private String getMergedValue(String string, String existingValue, String newValue, String errorPrefix) {
+		return getMergedValue(string, existingValue, newValue, errorPrefix, false);
+	}
+
+	private String getMergedValue(String string, String existingValue, String newValue, String errorPrefix, boolean ignoreMessage) {
 		if (existingValue == null || existingValue.trim().isEmpty()) {
 			return newValue;
 		} else if (newValue == null || newValue.trim().isEmpty()) {
 			return existingValue;
-		} else if (existingValue.trim().equalsIgnoreCase(newValue.trim())) {
+		} else if (existingValue.trim().toLowerCase().contains(newValue.trim().toLowerCase())) {
 			return existingValue;
+		} else if (newValue.trim().toLowerCase().contains(existingValue.trim().toLowerCase())) {
+			return newValue;
 		} else {
-			logger.warn(errorPrefix + "New " + string + " differs from old one. (new: " + newValue + ", " + existingValue + "). Skipping");
+			if (!ignoreMessage) {
+				logger.warn(errorPrefix + "New " + string + " differs from old one. (new: " + newValue + ", " + existingValue + "). Skipping");
+			}
 			return existingValue;
 		}
 	}