Index: modules/openid/openid.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/openid/openid.module,v
retrieving revision 1.20
diff -u -F^f -r1.20 openid.module
--- modules/openid/openid.module	6 Feb 2008 19:38:27 -0000	1.20
+++ modules/openid/openid.module	18 Feb 2008 17:46:00 -0000
@@ -403,7 +403,6 @@ function openid_authentication($response
     $form_state['values']['pass']  = user_password();
     $form_state['values']['status'] = variable_get('user_register', 1) == 1;
     $form_state['values']['response'] = $response;
-    $form_state['values']['auth_openid'] = $identity;
     $form = drupal_retrieve_form('user_register', $form_state);
     drupal_prepare_form('user_register', $form, $form_state);
     drupal_validate_form('user_register', $form, $form_state);
@@ -425,6 +424,7 @@ function openid_authentication($response
         drupal_set_message(t("Error saving user account."), 'error');
         drupal_goto();
       }
+      user_set_authmaps($account, array("authname_openid" => $identity));
       user_external_login($account);
     }
     drupal_redirect_form($form, $form_state['redirect']);
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.894
diff -u -F^f -r1.894 user.module
--- modules/user/user.module	18 Feb 2008 16:53:36 -0000	1.894
+++ modules/user/user.module	18 Feb 2008 17:46:01 -0000
@@ -230,10 +230,9 @@ function user_save($account, $array = ar
       $array['access'] = time();
     }
     foreach ($array as $key => $value) {
-      // Fields that don't pertain to the users, users_roles, or
-      // authmap tables are automatically serialized into the
-      // users.data column. Authmap fields always begin with 'auth'.
-      if ($key != 'roles' && substr($key, 0, 4) !== 'auth' && empty($user_fields[$key])) {
+      // Fields that don't pertain to the users or user_roles
+      // automatically serialized into the users.data column.
+      if ($key != 'roles' && empty($user_fields[$key])) {
         if ($value === NULL) {
           unset($data[$key]);
         }
@@ -314,7 +313,7 @@ function user_save($account, $array = ar
     // fields from being saved there.
     $data = array();
     foreach ($array as $key => $value) {
-      if ((substr($key, 0, 4) !== 'auth') && ($key != 'roles') && (empty($user_fields[$key])) && ($value !== NULL)) {
+      if (($key != 'roles') && (empty($user_fields[$key])) && ($value !== NULL)) {
         $data[$key] = $value;
       }
     }
@@ -337,17 +336,6 @@ function user_save($account, $array = ar
     $user = user_load(array('uid' => $array['uid']));
   }
 
-  // Save distributed authentication mappings.
-  $authmaps = array();
-  foreach ($array as $key => $value) {
-    if (substr($key, 0, 4) == 'auth') {
-      $authmaps[$key] = $value;
-    }
-  }
-  if (sizeof($authmaps) > 0) {
-    user_set_authmaps($user, $authmaps);
-  }
-
   return $user;
 }
 
@@ -1349,7 +1337,6 @@ function user_external_login_register($n
       'pass' => user_password(),
       'init' => $name,
       'status' => 1,
-      "authname_$module" => $name,
       'access' => time()
     );
     $account = user_save('', $userinfo);
@@ -1358,6 +1345,7 @@ function user_external_login_register($n
       drupal_set_message(t("Error saving user account."), 'error');
       return;
     }
+    user_set_authmaps($account, array("authname_$module" => $name));
     $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'));
   }
