Index: modules/openid/openid.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/openid/openid.module,v
retrieving revision 1.41
diff -u -p -r1.41 openid.module
--- modules/openid/openid.module	1 Mar 2009 17:19:08 -0000	1.41
+++ modules/openid/openid.module	7 Mar 2009 18:17:46 -0000
@@ -129,15 +129,29 @@ function openid_form_user_register_alter
   if (isset($_SESSION['openid'])) {
     // We were unable to auto-register a new user. Prefill the registration
     // form with the values we have.
-    $form['name']['#default_value'] = $_SESSION['openid']['values']['name'];
-    $form['mail']['#default_value'] = $_SESSION['openid']['values']['mail'];
+    if (isset($_SESSION['openid']['values']['name']) && user_validate_name($_SESSION['openid']['values']['name'])) {
+      $form['name']['#default_value'] = $_SESSION['openid']['values']['name'];
+    }
+    if (isset($_SESSION['openid']['values']['mail']) && user_validate_mail($_SESSION['openid']['values']['mail'])) {
+      $form['mail']['#default_value'] = $_SESSION['openid']['values']['mail'];
+    }
+
     // If user_email_verification is off, hide the password field and just fill
     // with random password to avoid confusion.
     if (!variable_get('user_email_verification', TRUE)) {
       $form['pass']['#type'] = 'hidden';
       $form['pass']['#value'] = user_password();
     }
-    $form['auth_openid'] = array('#type' => 'hidden', '#value' => $_SESSION['openid']['values']['auth_openid']);
+    $form['auth_openid'] = array(
+      '#type' => 'hidden', 
+      '#value' => isset($_SESSION['openid']['values']['response']['openid.claimed_id']) ? $_SESSION['openid']['values']['response']['openid.claimed_id'] : ''
+    );
+    $form['openid_display'] = array(
+      '#type' => 'item',
+      '#title' => t('Your OpenID'),
+      '#description' => t('This OpenID will be attached to your account after registration.'),
+      '#markup' => isset($_SESSION['openid']['values']['response']['openid.claimed_id']) ? $_SESSION['openid']['values']['response']['openid.claimed_id'] : ''    
+    );
   }
 }
 
@@ -413,8 +427,8 @@ function openid_authentication($response
   elseif (variable_get('user_register', 1)) {
     // Register new user
     $form_state['redirect'] = NULL;
-    $form_state['values']['name'] = (empty($response['openid.sreg.nickname'])) ? $identity : $response['openid.sreg.nickname'];
-    $form_state['values']['mail'] = (empty($response['openid.sreg.email'])) ? '' : $response['openid.sreg.email'];
+    $form_state['values']['name'] = !empty($response['openid.sreg.nickname']) ? $response['openid.sreg.nickname'] : '';
+    $form_state['values']['mail'] = !empty($response['openid.sreg.email']) ? $response['openid.sreg.email'] : '';
     $form_state['values']['pass']  = user_password();
     $form_state['values']['status'] = variable_get('user_register', 1) == 1;
     $form_state['values']['response'] = $response;
@@ -424,7 +438,7 @@ function openid_authentication($response
     if (form_get_errors()) {
       // We were unable to register a valid new user, redirect to standard
       // user/register and prefill with the values we received.
-      drupal_set_message(t('OpenID registration failed for the reasons listed. You may register now, or if you already have an account you can <a href="@login">log in</a> now and add your OpenID under "My Account"', array('@login' => url('user/login'))), 'error');
+      drupal_set_message(t('OpenID registration failed for the reasons listed. Your OpenID persona did not provide the information requested, such as username and email or your OpenID provider does not support Simple Registration. Please complete the registration process manually, or <a href="@login">log in</a> now and add your OpenID under "My Account"', array('@login' => url('user/login'))), 'warning');
       if (!isset($_SESSION['openid'])) {
         drupal_set_session('openid', array());
       }
