Index: modules/openid/openid.api.php
===================================================================
RCS file: /cvs/drupal/drupal/modules/openid/openid.api.php,v
retrieving revision 1.2
diff -u -p -r1.2 openid.api.php
--- modules/openid/openid.api.php	24 May 2009 17:39:33 -0000	1.2
+++ modules/openid/openid.api.php	24 Aug 2009 07:06:00 -0000
@@ -32,5 +32,20 @@ function hook_openid($op, $request) {
 }
 
 /**
+ * Allow modules to act upon a successful OpenID login.
+ *
+ * @param $response
+ *   Response values from the OpenID Provider.
+ * @param $account
+ *   The Drupal user account that logged in
+ *
+ */
+function hook_openid_response($response, $account) {
+  if (isset($response['openid.ns.ax'])) {
+    _mymodule_store_ax_fields($response, $account);
+  }
+}
+
+/**
  * @} End of "addtogroup hooks".
  */
Index: modules/openid/openid.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/openid/openid.module,v
retrieving revision 1.56
diff -u -p -r1.56 openid.module
--- modules/openid/openid.module	24 Aug 2009 00:14:21 -0000	1.56
+++ modules/openid/openid.module	24 Aug 2009 07:06:00 -0000
@@ -418,6 +418,8 @@ function openid_authentication($response
         // Load global $user and perform final login tasks.
         $form_state['uid'] = $account->uid;
         user_login_submit(array(), $form_state);
+        // Let other modules act on OpenID login
+        module_invoke_all('openid_response', $response, $account);
       }
     }
     else {
@@ -458,6 +460,8 @@ function openid_authentication($response
       // Load global $user and perform final login tasks.
       $form_state['uid'] = $account->uid;
       user_login_submit(array(), $form_state);
+      // Let other modules act on OpenID login
+      module_invoke_all('openid_response', $response, $account);
     }
     drupal_redirect_form($form, $form_state['redirect']);
   }
