diff --git a/src/main/java/de/bps/olat/user/ChangeEMailExecuteController.java b/src/main/java/de/bps/olat/user/ChangeEMailExecuteController.java
index 636cba8db558ea72b1745a2a7c97948416af6882..ce46617e96584eb170439e3226e626965d8a867e 100644
--- a/src/main/java/de/bps/olat/user/ChangeEMailExecuteController.java
+++ b/src/main/java/de/bps/olat/user/ChangeEMailExecuteController.java
@@ -19,7 +19,9 @@
  */
 package de.bps.olat.user;
 
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.WindowControl;
@@ -103,9 +105,13 @@ public class ChangeEMailExecuteController extends ChangeEMailController implemen
 		XStream xml = new XStream();
 		@SuppressWarnings("unchecked")
 		HashMap<String, String> mails = (HashMap<String, String>) xml.fromXML(tempKey.getEmailAddress());
-		Identity ident = UserManager.getInstance().findIdentityByEmail(mails.get("currentEMail"));
-		if (ident != null) {
+		
+		String currentMail = mails.get("currentEMail");
+		List<Identity> identities = UserManager.getInstance()
+				.findIdentitiesByEmail(Collections.singletonList(currentMail));
+		if (identities != null && identities.size() == 1) {
 			// change mail address
+			Identity ident = identities.get(0);
 			ident.getUser().setProperty("email", mails.get("changedEMail"));
 			// if old mail address closed then set the new mail address
 			// unclosed
@@ -119,6 +125,9 @@ public class ChangeEMailExecuteController extends ChangeEMailController implemen
 			// remove keys
 			ident.getUser().setProperty("emchangeKey", null);
 			userRequest.getUserSession().removeEntryFromNonClearedStore(ChangeEMailController.CHANGE_EMAIL_ENTRY);
+		} else {
+			// error message
+			wControl.setWarning(pT.translate("error.change.email.unexpected", new String[] { mails.get("currentEMail"), mails.get("changedEMail") }));
 		}
 		// delete registration key
 		rm.deleteTemporaryKeyWithId(tempKey.getRegistrationKey());
diff --git a/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties
index 1db12993019523310d791b1a4287a2d36c129fbb..9609cbee6fcfc2d367e64dc82fd519c60e7468b5 100644
--- a/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties
@@ -18,6 +18,7 @@ email.change.wherefrom=Diese Anfrage an den Server {0} wurde am {1} \nvon der IP
 email.notsent=Die E-Mail konnte nicht versendet werden.
 email.sent=Die E-Mail wurde erfolgreich versendet.
 error.change.email=Dieser Aktivierungs-Link wurde bereits verwendet und ist somit nicht mehr g\u00FCltig.
+error.change.email.unexpected=Ihre E-Mail Adresse konnte nicht ge\u00C4ndert werden. Ein unerwarteter Fehler ist aufgetreten.
 error.change.email.time=Dieser Aktivierungs-Link hat eine G\u00FCltigkeitsdauer von {0} Stunden und ist somit nicht mehr g\u00FCltig.
 error.no.props.found=Es wurden keine Properties f\u00FCr diesen Benutzer gefunden
 error.password.empty=Geben Sie Ihr bisheriges Passwort an
diff --git a/src/main/java/org/olat/user/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/user/_i18n/LocalStrings_en.properties
index a69b8502dc3bb1734c744b0b046acd0cba527926..86b7a6f281cd825a60f4bde637f28841759953d4 100644
--- a/src/main/java/org/olat/user/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/user/_i18n/LocalStrings_en.properties
@@ -19,6 +19,7 @@ email.notsent=This E-mail could not be sent.
 email.sent=E-mail sent successfully.
 error.change.email=This activating link has already been used and is therefore invalid.
 error.change.email.time=This activating link can only be used for {0} hrs and is therefore invalid.
+error.change.email.unexpected=Your E-mail could not be changed. An unexpected server error occurred.
 error.no.props.found=No properties found for this user
 error.password.empty=Please indicate your previous password
 error.password.noauth=Your previous password is inaccurate