diff --git a/src/main/java/org/olat/basesecurity/manager/IdentityDAO.java b/src/main/java/org/olat/basesecurity/manager/IdentityDAO.java
index 5362b58c4c4582c3e42550250c1e32f8ea62d7ce..35720d6fec68bb7c922948f3edffb7e727982228 100644
--- a/src/main/java/org/olat/basesecurity/manager/IdentityDAO.java
+++ b/src/main/java/org/olat/basesecurity/manager/IdentityDAO.java
@@ -82,6 +82,7 @@ public class IdentityDAO {
 		  .append(" where lower(ident.name) in (:names)")
 		  .append(" or lower(auth.authusername) in (:names)")
 		  .append(" or lower(concat(user.firstName,' ', user.lastName)) in (:names)")
+		  .append(" or lower(user.nickName) in (:names)")
 		  .append(" or lower(user.email) in (:names)")
 		  .append(" or lower(user.institutionalEmail) in (:names)")
 		  .append(" or lower(user.institutionalUserIdentifier) in (:names)");
@@ -107,7 +108,7 @@ public class IdentityDAO {
 		return new ArrayList<>(namedIdentities.values());
 	}
 	
-	private void appendName(FindNamedIdentity namedIdentity, Authentication authentication, Collection<String> names) {
+	private void appendName(FindNamedIdentity namedIdentity, Authentication authentication, Set<String> names) {
 		if(authentication != null) {
 			String authUsername = authentication.getAuthusername().toLowerCase();
 			if(names.contains(authUsername)) {
@@ -149,6 +150,11 @@ public class IdentityDAO {
 				&& names.contains(user.getProperty(UserConstants.INSTITUTIONALUSERIDENTIFIER, null).toLowerCase())) {
 			namedIdentity.addName(user.getProperty(UserConstants.INSTITUTIONALUSERIDENTIFIER, null));
 		}
+		
+		if(StringHelper.containsNonWhitespace(user.getProperty(UserConstants.NICKNAME, null))
+				&& names.contains(user.getProperty(UserConstants.NICKNAME, null).toLowerCase())) {
+			namedIdentity.addName(user.getProperty(UserConstants.NICKNAME, null));
+		}
 	}
 	
 	public void setIdentityLastLogin(IdentityRef identity, Date lastLogin) {
diff --git a/src/main/java/org/olat/course/member/wizard/ImportMemberByUsernamesController.java b/src/main/java/org/olat/course/member/wizard/ImportMemberByUsernamesController.java
index 964d07c3151762816222ea7d8e219d2f731c06da..eac1236f9167d8b6ea052b5b093460d8bb8683dd 100644
--- a/src/main/java/org/olat/course/member/wizard/ImportMemberByUsernamesController.java
+++ b/src/main/java/org/olat/course/member/wizard/ImportMemberByUsernamesController.java
@@ -135,6 +135,8 @@ public class ImportMemberByUsernamesController extends StepFormBasicController {
 		tableEl.setCustomizeColumns(false);
 		tableEl.setMultiSelect(true);
 		tableEl.setSelectAllEnable(true);
+		tableEl.setCustomizeColumns(true);
+		tableEl.setAndLoadPersistedPreferences(ureq, "user-import-table-v1");
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java b/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java
index 17c577bc836848c9534367c2fbf55ac4aa050729..03c9851ac7a14e22c8388334baca5ca6dd72f1b5 100644
--- a/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java
+++ b/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java
@@ -1414,12 +1414,12 @@ public class LDAPLoginManagerImpl implements LDAPLoginManager, AuthenticationPro
 			currentMemberKeys.add(currentMember.getKey());
 		}
 
-		List<LDAPUser> coaches = new ArrayList<>(ldapGroup.getCoaches());
-		List<LDAPUser> participants = new ArrayList<>(ldapGroup.getParticipants());
+		Set<LDAPUser> coaches = new HashSet<>(ldapGroup.getCoaches());
+		Set<LDAPUser> participants = new HashSet<>(ldapGroup.getParticipants());
 		// transfer member cn's to the participants list
 		for(String member:ldapGroup.getMembers()) {
 			try {
-				LDAPUser ldapUser = getLDAPUser(ctx, member, dnToIdentityKeyMap, errors); dnToIdentityKeyMap.get(member);
+				LDAPUser ldapUser = getLDAPUser(ctx, member, dnToIdentityKeyMap, errors);
 				if(ldapUser != null && !participants.contains(ldapUser)) {
 					participants.add(ldapUser);
 				}