diff --git a/src/main/java/org/olat/ldap/manager/LDAPGroupVisitor.java b/src/main/java/org/olat/ldap/manager/LDAPGroupVisitor.java
index 5eed214d8cb2852593348dbf67122aeb2ad5a9e5..bc07ff0c839daccaf9860c17fa5841cb7ee173f1 100644
--- a/src/main/java/org/olat/ldap/manager/LDAPGroupVisitor.java
+++ b/src/main/java/org/olat/ldap/manager/LDAPGroupVisitor.java
@@ -28,6 +28,8 @@ import javax.naming.directory.Attribute;
 import javax.naming.directory.Attributes;
 import javax.naming.directory.SearchResult;
 
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 import org.olat.ldap.model.LDAPGroup;
 
 /**
@@ -37,6 +39,8 @@ import org.olat.ldap.model.LDAPGroup;
  *
  */
 public class LDAPGroupVisitor implements LDAPVisitor {
+	
+	private static final OLog log = Tracing.createLoggerFor(LDAPGroupVisitor.class);
 
 	private final List<LDAPGroup> groups = new ArrayList<LDAPGroup>();
 	
@@ -65,7 +69,7 @@ public class LDAPGroupVisitor implements LDAPVisitor {
 				}
 			}
 		} catch (NamingException e) {
-			e.printStackTrace();
+			log.error("", e);
 		}
 		group.setMembers(members);
 		groups.add(group);
diff --git a/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java b/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java
index 1b86a7b0471b48f3cc109c95f4f33fa2169bb4ad..9bef6542538a6dd6d29370ced6dbabb34c68bcd5 100644
--- a/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java
+++ b/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java
@@ -1140,12 +1140,16 @@ public class LDAPLoginManagerImpl implements LDAPLoginManager, GenericEventListe
 		List<Identity> currentMembers = businessGroupRelationDao
 				.getMembers(businessGroup, GroupRoles.coach.name(), GroupRoles.participant.name());
 
+		int count = 0;
 		for(String member:members) {
 			LDAPUser ldapUser = getLDAPUser(ctx, member, dnToIdentityKeyMap, errors);
 			if(ldapUser != null) {
 				Identity identity = ldapUser.getCachedIdentity();
 				syncMembership(businessGroup, identity, ldapUser.isCoach());
 				currentMembers.remove(identity);
+				if(++count % 20 == 0) {
+					dbInstance.commitAndCloseSession();
+				}
 			}
 		}
 		
@@ -1153,6 +1157,9 @@ public class LDAPLoginManagerImpl implements LDAPLoginManager, GenericEventListe
 			List<String> roles = businessGroupRelationDao.getRoles(currentMember, businessGroup);
 			for(String role:roles) {
 				businessGroupRelationDao.removeRole(currentMember, businessGroup, role);
+				if(++count % 20 == 0) {
+					dbInstance.commitAndCloseSession();
+				}
 			}
 		}
 	}
diff --git a/src/main/java/org/olat/user/propertyhandlers/GenderPropertyHandler.java b/src/main/java/org/olat/user/propertyhandlers/GenderPropertyHandler.java
index 5e8ad5840626a66e2cd20214efdd0f8089e4d4f2..567339390f09122b1f1f3a9c5b8a33359b033019 100644
--- a/src/main/java/org/olat/user/propertyhandlers/GenderPropertyHandler.java
+++ b/src/main/java/org/olat/user/propertyhandlers/GenderPropertyHandler.java
@@ -64,6 +64,17 @@ public class GenderPropertyHandler extends AbstractUserPropertyHandler {
 		return values;
 	}
 
+	@Override
+	public void setUserProperty(User user, String value) {
+		if(value != null) {
+			if("m".equals(value)) {
+				value = "male";
+			} else if("f".equals(value)) {
+				value = "female";
+			}	
+		}
+		super.setUserProperty(user, value);
+	}
 
 	/**
 	 * @see org.olat.user.AbstractUserPropertyHandler#getUserProperty(org.olat.core.id.User, java.util.Locale)