Index: logintoboggan.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/logintoboggan/logintoboggan.module,v
retrieving revision 1.83.2.36
diff -u -F^f -u -F^f -r1.83.2.36 logintoboggan.module
--- logintoboggan.module	9 Mar 2008 01:00:02 -0000	1.83.2.36
+++ logintoboggan.module	27 Mar 2008 03:37:07 -0000
@@ -769,12 +769,14 @@ function logintoboggan_validate_email($u
 
       // Test here for a valid pre-auth -- if the pre-auth is set to the auth user, we
       // handle things a bit differently.
-      $pre_auth = logintoboggan_validating_id() != DRUPAL_AUTHENTICATED_RID;
+      $validating_id = logintoboggan_validating_id();
+      $pre_auth = $validating_id != DRUPAL_AUTHENTICATED_RID;
 
       // Remove the pre-auth role from the user, unless they haven't been approved yet.
       if ($account->status) {
         if ($pre_auth) {
-          db_query("DELETE FROM {users_roles} WHERE uid = %d AND rid = %d", $account->uid, logintoboggan_validating_id());
+          db_query("DELETE FROM {users_roles} WHERE uid = %d AND rid = %d", $account->uid, $validating_id);
+          unset($account->roles[$validating_id]);
         }
         // Allow other modules to react to email validation by invoking the user update hook.
         $edit = array();
