Index: modules/openid/openid.module
===================================================================
--- modules/openid/openid.module	(revision 12410)
+++ modules/openid/openid.module	(working copy)
@@ -496,12 +496,22 @@
         drupal_set_message(t("Error saving user account."), 'error');
         drupal_goto();
       }
+
+      // Save OpenID relationship with this user account.
       user_set_authmaps($account, array("authname_openid" => $identity));
-      // 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);
+
+      if ($account->status) {
+        // 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 {
+        // Account saved, but still needs to be approved.
+        drupal_set_message(t('Thank you for applying for an account. Your account is currently pending approval by the site administrator.'));
+        drupal_goto();
+      }
     }
     drupal_redirect_form($form_state);
   }
