diff --git a/src/main/java/org/olat/user/UserManagerImpl.java b/src/main/java/org/olat/user/UserManagerImpl.java
index 9cf2ede8c1bffefebad01f4c2b69b31db45b4921..d3d5269ea06c63b3fa1bf63b70984539f1bb9adf 100644
--- a/src/main/java/org/olat/user/UserManagerImpl.java
+++ b/src/main/java/org/olat/user/UserManagerImpl.java
@@ -406,7 +406,6 @@ public class UserManagerImpl extends UserManager {
 			List<IdentityShort> identities = securityManager.findShortIdentitiesByName(Collections.singletonList(username));
 			for(IdentityShort identity:identities) {
 				fullName = getUserDisplayName(identity);
-				updateUsernameCache(identity.getKey(), identity.getName(), fullName);
 			}
 		}
 		return fullName;
@@ -421,7 +420,7 @@ public class UserManagerImpl extends UserManager {
 		String fullName = usernameCache.get(identityKey);
 		if(fullName == null) {
 			IdentityShort identity = securityManager.loadIdentityShortByKey(identityKey);
-			updateUsernameCache(identity.getKey(), identity.getName(), fullName);
+			fullName = getUserDisplayName(identity);
 		}
 		return fullName;
 	}
@@ -446,7 +445,6 @@ public class UserManagerImpl extends UserManager {
 		List<IdentityShort> identities = securityManager.findShortIdentitiesByName(newUsernames);
 		for(IdentityShort identity:identities) {
 			String fullName = getUserDisplayName(identity);
-			updateUsernameCache(identity.getKey(), identity.getName(), fullName);
 			fullNames.put(identity.getName(), fullName);
 			newUsernames.remove(identity.getName());
 		}
@@ -459,8 +457,8 @@ public class UserManagerImpl extends UserManager {
 
 	@Override
 	public String getUserDisplayName(Identity identity) {
-		if (userDisplayNameCreator == null) return "";
-		String fullName = userDisplayNameCreator.getUserDisplayName(identity.getUser());
+		if (userDisplayNameCreator == null || identity == null) return "";
+		String fullName = getUserDisplayName(identity.getUser());
 		updateUsernameCache(identity.getKey(), identity.getName(), fullName);
 		return fullName;
 	}
@@ -470,7 +468,7 @@ public class UserManagerImpl extends UserManager {
 	 */
 	@Override
 	public String getUserDisplayName(User user) {
-		if (userDisplayNameCreator == null) return "";
+		if (userDisplayNameCreator == null || user == null) return "";
 		return userDisplayNameCreator.getUserDisplayName(user);
 	}
 	
@@ -479,7 +477,7 @@ public class UserManagerImpl extends UserManager {
 	 */
 	@Override
 	public String getUserDisplayName(IdentityShort identity) {
-		if (userDisplayNameCreator == null) return "";
+		if (userDisplayNameCreator == null || identity == null) return "";
 		String fullName = userDisplayNameCreator.getUserDisplayName(identity);
 		updateUsernameCache(identity.getKey(), identity.getName(), fullName);
 		return fullName;
@@ -514,10 +512,12 @@ public class UserManagerImpl extends UserManager {
 	}
 	
 	private void updateUsernameCache(Long identityKey, String username, String fullName) {
-		if(identityKey != null && fullName != null) {
+		if(fullName == null) return;
+		
+		if(identityKey != null) {
 			usernameCache.put(identityKey, fullName);
 		}
-		if(username != null && fullName != null) {
+		if(username != null) {
 			usernameCache.put(username, fullName);
 		}
 	}