Index: openid.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/openid/openid.module,v
retrieving revision 1.19.2.3
diff -u -p -r1.19.2.3 openid.module
--- openid.module	9 Jul 2008 21:48:28 -0000	1.19.2.3
+++ openid.module	23 Sep 2008 21:24:18 -0000
@@ -117,15 +117,29 @@ function openid_form_alter(&$form, $form
   elseif ($form_id == 'user_register' && 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']['auth_openid']) ? $_SESSION['openid']['values']['auth_openid'] : ''
+    );
+    $form['openid_display'] = array(
+      '#type' => 'item',
+      '#title' => t('Your OpenID'),
+      '#description' => t('This OpenID will be attached to your account after registration.'),
+      '#value' => isset($_SESSION['openid']['values']['auth_openid']) ? $_SESSION['openid']['values']['auth_openid'] : ''    
+    );
   }
   return $form;
 }
@@ -400,8 +414,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;
@@ -412,7 +426,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');
       $_SESSION['openid']['values'] = $form_state['values'];
       // We'll want to redirect back to the same place.
       $destination = drupal_get_destination();
