--- user.module.old 2006-06-03 17:02:50.000000000 +0200 +++ user.module 2006-06-03 17:06:20.000000000 +0200 @@ -192,8 +192,10 @@ // Reload user roles (delete just to be safe). db_query('DELETE FROM {users_roles} WHERE uid = %d', $array['uid']); - foreach ((array)$array['roles'] as $rid) { - db_query('INSERT INTO {users_roles} (uid, rid) VALUES (%d, %d)', $array['uid'], $rid); + foreach (array_keys($array['roles']) as $rid) { + if (!in_array($rid, array(DRUPAL_ANONYMOUS_RID, DRUPAL_AUTHENTICATED_RID))) { + db_query('INSERT INTO {users_roles} (uid, rid) VALUES (%d, %d)', $account->uid, $rid); + } } // Build the initial user object.