diff -upr ldap_integration-1.3/ldapauth.module ldap_integration/ldapauth.module
--- ldap_integration-1.3/ldapauth.module	2007-08-22 19:55:21.000000000 -0400
+++ ldap_integration/ldapauth.module	2008-01-29 15:41:30.000000000 -0500
@@ -959,7 +959,8 @@ function _ldapauth_save_user($login_stri
   
   $config_name = $ldapauth_ldap->getOption('name');
   $userinfo = array('mail' => $mail, 'ldap_dn' => $dn, 'ldap_config' => $config_name);
-  user_save($user, $userinfo);
+  $user = user_save($user, $userinfo);
+  menu_rebuild();
     
   // obtain the DN for this user in this specific LDAP repository  
   $_SESSION['ldap_login']['dn'] = $dn;
diff -upr ldap_integration-1.3/ldapgroups.module ldap_integration/ldapgroups.module
--- ldap_integration-1.3/ldapgroups.module	2007-07-22 16:04:25.000000000 -0400
+++ ldap_integration/ldapgroups.module	2008-01-29 15:41:29.000000000 -0500
@@ -242,6 +242,9 @@ function ldapgroups_user_login(&$user) {
 
   $user->ldap_drupal_roles = isset($user->ldap_drupal_roles) ? $user->ldap_drupal_roles : array();
   foreach ($user->ldap_drupal_roles as $role) {
+    if (preg_match('/^[^=]*=([^,]*),.*$/', $role, $matches)) {
+      $role = $matches[1];
+    }
     _ldapgroups_deny_role($user, $role);
   }
 
@@ -284,7 +287,7 @@ function ldapgroups_user_login(&$user) {
 
   // Store roles in the user object so we know which ones
   // were granted here
-  user_save($user, array('ldap_drupal_roles' => $roles));
+  $user = user_save($user, array('ldap_drupal_roles' => $roles));
 }
 
 
