--- user.module~	2008-07-09 14:48:28.000000000 -0700
+++ user.module	2008-07-16 16:51:41.077049000 -0700
@@ -1387,8 +1387,8 @@
 function user_external_login_register($name, $module) {
   global $user;
 
-  $user = user_load(array('name' => $name));
-  if (!isset($user->uid)) {
+  $registered_user = user_load(array('name' => $name));
+  if (!isset($registered_user->uid)) {
     // Register this new user.
     $userinfo = array(
       'name' => $name,
@@ -1406,6 +1406,8 @@
     }
     $user = $account;
     watchdog('user', 'New external user: %name using module %module.', array('%name' => $name, '%module' => $module), WATCHDOG_NOTICE, l(t('edit'), 'user/'. $user->uid .'/edit'));
+  } else {
+    $user = $registered_user;
   }
 }
 
