Index: user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.745.2.13
diff -u -p -r1.745.2.13 user.module
--- user.module	26 Jul 2007 19:16:50 -0000	1.745.2.13
+++ user.module	16 Aug 2007 15:18:25 -0000
@@ -990,16 +990,20 @@ function user_authenticate($name, $pass)
     }
   }
 
-  // Try each external authentication source in series. Register user if
-  // successful.
+  // Try each external authentication source in series.
   else {
     foreach (module_implements('auth') as $module) {
       if (module_invoke($module, 'auth', $name, $pass, $server)) {
         if ($server) {
           $name .= '@'. $server;
         }
-        $user = user_load(array('name' => $name));
-        if (!$user->uid) { // Register this new user.
+        
+         // Register user if there is not already a local account.
+        if ($account = user_load(array('name' => $name))) {
+          $user = $account;
+          return $user;
+        }
+        else {
           $userinfo = array('name' => $name, 'pass' => user_password(), 'init' => $name, 'status' => 1);
           if ($server) {
             $userinfo["authname_$module"] = $name;
