diff --git a/openid_client_ax.module b/openid_client_ax.module
index 2ffdb81..0c4ea5f 100644
--- a/openid_client_ax.module
+++ b/openid_client_ax.module
@@ -38,6 +38,7 @@ function openid_client_ax_menu() {
 function openid_client_ax_menu_alter(&$callbacks) {
   $callbacks['openid/authenticate']['page callback'] = 'openid_client_ax_authentication_page';
   $callbacks['openid/authenticate']['file'] = NULL;
+  $callbacks['user/%user/openid']['page callback'] = 'openid_client_ax_user_identities';
 }
 
 /**
@@ -94,7 +95,6 @@ function openid_client_ax_openid($op, $request = array()) {
  *   Short name of the attribute
  */
 function openid_client_ax_attribute_name($uri) {
-  $form = array();
   $parts = array_filter(explode('/', str_replace('http://', '', $uri)), 'strlen');
   array_shift($parts);
   return implode('_', $parts);
@@ -262,6 +262,46 @@ function openid_client_ax_authentication($response) {
 }
 
 /**
+ * Menu callback; Manage OpenID identities for the specified user.
+ *
+ * Overrides openid_user_identities callback; adds integration with OpenID Client AX via invoking hook_openid_client().
+ *
+ * @see openid_user_identities()
+ */
+function openid_client_ax_user_identities($account) {
+  drupal_set_title(check_plain($account->name));
+  drupal_add_css(drupal_get_path('module', 'openid') .'/openid.css', 'module');
+
+  // Check to see if we got a response
+  $result = openid_complete();
+  if ($result['status'] == 'success') {
+    $identity = $result['openid.claimed_id'];
+    if (db_result(db_query("SELECT uid FROM {authmap} WHERE authname='%s' AND module='openid'", $identity))) {
+      drupal_set_message(t('Identity %identity (claimed_id: %claimed_id) found in user account.', array('%identity' => $identity, '%claimed_id' => $result['openid.claimed_id'])));
+    }
+    else {
+      db_query("INSERT INTO {authmap} (uid, authname, module) VALUES (%d, '%s','openid')", $account->uid, $identity);
+      drupal_set_message(t('Successfully added %identity', array('%identity' => $identity)));
+    }
+    // Let other openid client modules save the things to the user
+    module_invoke_all('openid_client', 'add', $result, $account);
+  }
+
+  $header = array(t('OpenID'), t('Operations'));
+  $rows = array();
+
+  $result = db_query("SELECT * FROM {authmap} WHERE module='openid' AND uid=%d", $account->uid);
+  while ($identity = db_fetch_object($result)) {
+    $rows[] = array(check_plain($identity->authname), l(t('Delete'), 'user/'. $account->uid .'/openid/delete/'. $identity->aid));
+  }
+
+  $output = theme('table', $header, $rows);
+  $output .= drupal_get_form('openid_user_add');
+  return $output;
+}
+
+
+/**
  * Helper function to retrieve the values if we have a multiple value attribute returned
  *
  * @param $response
