diff --git modules/openid/openid.install modules/openid/openid.install
index 404cb2f..a4cf0e6 100644
--- modules/openid/openid.install
+++ modules/openid/openid.install
@@ -55,6 +55,41 @@ function openid_schema() {
     'primary key' => array('assoc_handle'),
   );
 
+  $schema['openid_authmap'] = array(
+    'description' => 'Stores authentication mapping for OpenID.',
+    'fields' => array(
+      'aid' => array(
+        'description' => 'Primary Key: Unique authmap ID.',
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'uid' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => "User's {users}.uid.",
+      ),
+      'authname' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => 'Unique authentication name.',
+      ),
+    ),
+    'unique keys' => array(
+      'authname' => array('authname'),
+    ),
+    'primary key' => array('aid'),
+    'foreign keys' => array(
+      'user' => array(
+        'table' => 'users',
+        'columns' => array('uid' => 'uid'),
+      ),
+    ),
+  );
+
   $schema['openid_nonce'] = array(
     'description' => 'Stores received openid.response_nonce per OpenID endpoint URL to prevent replay attacks.',
     'fields' => array(
@@ -153,3 +188,58 @@ function openid_update_6000() {
  * @} End of "defgroup updates-6.x-extra"
  * The next series of updates should start at 7000.
  */
+
+/**
+ * Use openid_authmap instead of authmap table.
+ */
+function openid_update_7000() {
+  $schema['openid_authmap'] = array(
+    'description' => 'Stores distributed authentication mapping.',
+    'fields' => array(
+      'aid' => array(
+        'description' => 'Primary Key: Unique authmap ID.',
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'uid' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => "User's {users}.uid.",
+      ),
+      'authname' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => 'Unique authentication name.',
+      ),
+    ),
+    'unique keys' => array(
+      'authname' => array('authname'),
+    ),
+    'primary key' => array('aid'),
+    'foreign keys' => array(
+      'user' => array(
+        'table' => 'users',
+        'columns' => array('uid' => 'uid'),
+      ),
+    ),
+  );
+  db_create_table('openid_authmap', $schema['openid_authmap']);
+
+  // Migrate from {authmap} to {openid_authmap}
+  $authmaps = db_query("SELECT authname, uid FROM {authmap} WHERE module = :module", array(':module' => 'openid'));
+  foreach ($authmaps as $authmap) {
+    db_insert('openid_authmap')
+      ->fields(array(
+        'authname' => $authmap->authname,
+        'uid' => $authmap->uid,
+      ))
+      ->execute();
+  }
+  db_delete('authmap')
+    ->condition('module', 'openid')
+    ->execute();
+}
\ No newline at end of file
diff --git modules/openid/openid.module modules/openid/openid.module
index 3e1b2c9..ea905f2 100644
--- modules/openid/openid.module
+++ modules/openid/openid.module
@@ -90,7 +90,12 @@ function openid_user_insert(&$edit, $account, $category) {
     if (variable_get('user_email_verification', TRUE)) {
       drupal_set_message(t('Once you have verified your e-mail address, you may log in via OpenID.'));
     }
-    user_set_authmaps($account, array('authname_openid' => $edit['openid_claimed_id']));
+    db_insert('openid_authmap')
+      ->fields(array(
+        'authname' => $edit['openid_claimed_id'],
+        'uid' => $account->uid,
+      ))
+      ->execute();
     unset($_SESSION['openid']);
     unset($edit['openid_claimed_id']);
   }
@@ -591,8 +596,9 @@ function openid_association($op_endpoint) {
 function openid_authentication($response) {
   $identity = $response['openid.claimed_id'];
 
-  $account = user_external_load($identity);
-  if (isset($account->uid)) {
+  $uid = db_query("SELECT uid FROM {openid_authmap} WHERE authname = :authname", array(':authname' => $identity))->fetchField();
+  if ($uid) {
+    $account = user_load($uid);
     if (!variable_get('user_email_verification', TRUE) || $account->login) {
       // Check if user is blocked.
       $state['values']['name'] = $account->name;
diff --git modules/openid/openid.pages.inc modules/openid/openid.pages.inc
index db41e3b..c16b81e 100644
--- modules/openid/openid.pages.inc
+++ modules/openid/openid.pages.inc
@@ -35,11 +35,10 @@ function openid_user_identities($account) {
   $result = openid_complete();
   if ($result['status'] == 'success') {
     $identity = $result['openid.claimed_id'];
-    $query = db_insert('authmap')
+    $query = db_insert('openid_authmap')
       ->fields(array(
         'uid' => $account->uid,
         'authname' => $identity,
-        'module' => 'openid',
       ))
       ->execute();
     drupal_set_message(t('Successfully added %identity', array('%identity' => $identity)));
@@ -48,7 +47,7 @@ function openid_user_identities($account) {
   $header = array(t('OpenID'), t('Operations'));
   $rows = array();
 
-  $result = db_query("SELECT * FROM {authmap} WHERE module='openid' AND uid=:uid", array(':uid' => $account->uid));
+  $result = db_query("SELECT * FROM {openid_authmap} WHERE uid=:uid", array(':uid' => $account->uid));
   foreach ($result as $identity) {
     $rows[] = array(check_plain($identity->authname), l(t('Delete'), 'user/' . $account->uid . '/openid/delete/' . $identity->aid));
   }
@@ -81,7 +80,7 @@ function openid_user_add() {
 function openid_user_add_validate($form, &$form_state) {
   // Check for existing entries.
   $claimed_id = openid_normalize($form_state['values']['openid_identifier']);
-  if (db_query("SELECT authname FROM {authmap} WHERE authname = :authname", (array(':authname' => $claimed_id)))->fetchField()) {
+  if (db_query("SELECT authname FROM {openid_authmap} WHERE authname = :authname", (array(':authname' => $claimed_id)))->fetchField()) {
     form_set_error('openid_identifier', t('That OpenID is already in use on this site.'));
   }
 }
@@ -95,7 +94,7 @@ function openid_user_add_submit($form, &$form_state) {
  * Menu callback; Delete the specified OpenID identity from the system.
  */
 function openid_user_delete_form($form, $form_state, $account, $aid = 0) {
-  $authname = db_query("SELECT authname FROM {authmap} WHERE uid = :uid AND aid = :aid AND module = 'openid'", array(
+  $authname = db_query("SELECT authname FROM {openid_authmap} WHERE uid = :uid AND aid = :aid", array(
     ':uid' => $account->uid,
     ':aid' => $aid,
   ))
@@ -104,10 +103,9 @@ function openid_user_delete_form($form, $form_state, $account, $aid = 0) {
 }
 
 function openid_user_delete_form_submit($form, &$form_state) {
-  $query = db_delete('authmap')
+  $query = db_delete('openid_authmap')
     ->condition('uid', $form_state['build_info']['args'][0]->uid)
     ->condition('aid', $form_state['build_info']['args'][1])
-    ->condition('module', 'openid')
     ->execute();
   if ($query) {
     drupal_set_message(t('OpenID deleted.'));
diff --git modules/user/user.install modules/user/user.install
index 615743b..4d02e4d 100644
--- modules/user/user.install
+++ modules/user/user.install
@@ -10,48 +10,6 @@
  * Implements hook_schema().
  */
 function user_schema() {
-  $schema['authmap'] = array(
-    'description' => 'Stores distributed authentication mapping.',
-    'fields' => array(
-      'aid' => array(
-        'description' => 'Primary Key: Unique authmap ID.',
-        'type' => 'serial',
-        'unsigned' => TRUE,
-        'not null' => TRUE,
-      ),
-      'uid' => array(
-        'type' => 'int',
-        'not null' => TRUE,
-        'default' => 0,
-        'description' => "User's {users}.uid.",
-      ),
-      'authname' => array(
-        'type' => 'varchar',
-        'length' => 128,
-        'not null' => TRUE,
-        'default' => '',
-        'description' => 'Unique authentication name.',
-      ),
-      'module' => array(
-        'type' => 'varchar',
-        'length' => 128,
-        'not null' => TRUE,
-        'default' => '',
-        'description' => 'Module which is controlling the authentication.',
-      ),
-    ),
-    'unique keys' => array(
-      'authname' => array('authname'),
-    ),
-    'primary key' => array('aid'),
-    'foreign keys' => array(
-      'user' => array(
-        'table' => 'users',
-        'columns' => array('uid' => 'uid'),
-      ),
-    ),
-  );
-
   $schema['role_permission'] = array(
     'description' => 'Stores the permissions assigned to user roles.',
     'fields' => array(
diff --git modules/user/user.module modules/user/user.module
index 8592e01..08fd037 100644
--- modules/user/user.module
+++ modules/user/user.module
@@ -206,26 +206,6 @@ function user_field_extra_fields() {
 }
 
 /**
- * Fetches a user object based on an external authentication source.
- *
- * @param string $authname
- *   The external authentication username.
- *
- * @return
- *   A fully-loaded user object if the user is found or FALSE if not found.
- */
-function user_external_load($authname) {
-  $uid = db_query("SELECT uid FROM {authmap} WHERE authname = :authname", array(':authname' => $authname))->fetchField();
-
-  if ($uid) {
-    return user_load($uid);
-  }
-  else {
-    return FALSE;
-  }
-}
-
-/**
  * Load multiple users based on certain conditions.
  *
  * This function should be used whenever you need to load more than one user
@@ -1914,52 +1894,6 @@ function user_page_title($account) {
 }
 
 /**
- * Discover which external authentication module(s) authenticated a username.
- *
- * @param $authname
- *   A username used by an external authentication module.
- * @return
- *   An associative array with module as key and username as value.
- */
-function user_get_authmaps($authname = NULL) {
-  $authmaps = db_query("SELECT authname, module FROM {authmap} WHERE authname = :authname", array(':authname' => $authname))->fetchAllKeyed();
-  return count($authmaps) ? $authmaps : 0;
-}
-
-/**
- * Save mappings of which external authentication module(s) authenticated
- * a user. Maps external usernames to user ids in the users table.
- *
- * @param $account
- *   A user object.
- * @param $authmaps
- *   An associative array with a compound key and the username as the value.
- *   The key is made up of 'authname_' plus the name of the external authentication
- *   module.
- * @see user_external_login_register()
- */
-function user_set_authmaps($account, $authmaps) {
-  foreach ($authmaps as $key => $value) {
-    $module = explode('_', $key, 2);
-    if ($value) {
-      db_merge('authmap')
-        ->key(array(
-          'uid' => $account->uid,
-          'module' => $module[1],
-        ))
-        ->fields(array('authname' => $value))
-        ->execute();
-    }
-    else {
-      db_delete('authmap')
-        ->condition('uid', $account->uid)
-        ->condition('module', $module[1])
-        ->execute();
-    }
-  }
-}
-
-/**
  * Form builder; the main user login form.
  *
  * @ingroup forms
@@ -2183,36 +2117,6 @@ function user_login_submit($form, &$form_state) {
 }
 
 /**
- * Helper function for authentication modules. Either logs in or registers
- * the current user, based on username. Either way, the global $user object is
- * populated and login tasks are performed.
- */
-function user_external_login_register($name, $module) {
-  $account = user_external_load($name);
-  if (!$account) {
-    // Register this new user.
-    $userinfo = array(
-      'name' => $name,
-      'pass' => user_password(),
-      'init' => $name,
-      'status' => 1,
-      'access' => REQUEST_TIME
-    );
-    $account = user_save(drupal_anonymous_user(), $userinfo);
-    // Terminate if an error occurred during user_save().
-    if (!$account) {
-      drupal_set_message(t("Error saving user account."), 'error');
-      return;
-    }
-    user_set_authmaps($account, array("authname_$module" => $name));
-  }
-
-  // Log user in.
-  $form_state['uid'] = $account->uid;
-  user_login_submit(array(), $form_state);
-}
-
-/**
  * Generates a unique URL for a user to login and reset their password.
  *
  * @param object $account
diff --git sites/default/default.settings.php sites/default/default.settings.php
index 6ecc030..08c6150 100644
--- sites/default/default.settings.php
+++ sites/default/default.settings.php
@@ -131,11 +131,11 @@
  * not specified elsewhere in the array. Example:
  * @code
  *   'prefix' => array(
- *     'default'   => 'main_',
- *     'users'     => 'shared_',
- *     'sessions'  => 'shared_',
- *     'role'      => 'shared_',
- *     'authmap'   => 'shared_',
+ *     'default'        => 'main_',
+ *     'users'          => 'shared_',
+ *     'sessions'       => 'shared_',
+ *     'role'           => 'shared_',
+ *     'openid_authmap' => 'shared_',
  *   ),
  * @endcode
  * You can also use a reference to a schema/database as a prefix. This maybe
@@ -145,11 +145,11 @@
  * Example:
  * @code
  *   'prefix' => array(
- *     'default'   => 'main.',
- *     'users'     => 'shared.',
- *     'sessions'  => 'shared.',
- *     'role'      => 'shared.',
- *     'authmap'   => 'shared.',
+ *     'default'        => 'main.',
+ *     'users'          => 'shared.',
+ *     'sessions'       => 'shared.',
+ *     'role'           => 'shared.',
+ *     'openid_authmap' => 'shared.',
  *   );
  * @endcode
  * NOTE: MySQL and SQLite's definition of a schema is a database.
