diff --git a/modules/openid/openid.js b/modules/openid/openid.js
index 1f204274689294ac9b898926f1b98e5d8e487e17..fdc97fa06be341af58986c15a6e7aae358216dc1 100644
--- a/modules/openid/openid.js
+++ b/modules/openid/openid.js
@@ -11,10 +11,10 @@ Drupal.behaviors.openid = {
       if (cookie) {
         $('#edit-openid-identifier').val(cookie);
       }
-      if ($('#edit-openid-identifier').val()) {
+      if ($('#edit-openid-identifier').val() || location.hash == '#openid-login') {
         $('#edit-openid-identifier').addClass('openid-processed');
         loginElements.hide();
-        // Use .css('display', 'block') instead of .show() to  Konqueror friendly.
+        // Use .css('display', 'block') instead of .show() to be Konqueror friendly.
         openidElements.css('display', 'block');
       }
     }
diff --git a/modules/openid/openid.module b/modules/openid/openid.module
index bb6ad712bebb971c4b905272f4bc419f8b5505f9..2bf891ab69ac116dfa555223c24893e9c5d8d4d0 100644
--- a/modules/openid/openid.module
+++ b/modules/openid/openid.module
@@ -146,11 +146,11 @@ function _openid_user_login_form_alter(&$form, &$form_state) {
 
   $items = array();
   $items[] = array(
-    'data' => l(t('Log in using OpenID'), '#'),
+    'data' => l(t('Log in using OpenID'), '#openid-login', array('external' => TRUE)),
     'class' => array('openid-link'),
   );
   $items[] = array(
-    'data' => l(t('Cancel OpenID login'), '#'),
+    'data' => l(t('Cancel OpenID login'), '#', array('external' => TRUE)),
     'class' => array('user-link'),
   );