--- drupal-7.x-dev/modules/user/user.module	Sat May 17 17:02:56 2008
+++ modules/user/user.module	Wed May 21 19:17:20 2008
@@ -106,6 +106,7 @@ function user_external_load($authname) {
  *    TRUE if the login succeeds, FALSE otherwise.
  */
 function user_external_login($account, $edit = array()) {
+
   $form = drupal_get_form('user_login');
 
   $state['values'] = $edit;
@@ -543,7 +544,7 @@ function user_access($string, $account =
  * @return boolean TRUE for blocked users, FALSE for active.
  */
 function user_is_blocked($name) {
-  $deny = db_fetch_object(db_query("SELECT name FROM {users} WHERE status = 0 AND name = LOWER('%s')", $name));
+  $deny = db_fetch_object(db_query("SELECT name FROM {users} WHERE status = 0 AND (name = LOWER('%s') OR mail = LOWER('%s'))", $name, $name));
 
   return $deny;
 }
@@ -664,11 +665,12 @@ function user_login_block() {
     '#submit' => array('user_login_submit'),
   );
   $form['name'] = array('#type' => 'textfield',
-    '#title' => t('Username'),
-    '#maxlength' => USERNAME_MAX_LENGTH,
+    '#title' => t('Username / Email Address'),
+    '#maxlength' => EMAIL_MAX_LENGTH,
     '#size' => 15,
     '#required' => TRUE,
   );
+
   $form['pass'] = array('#type' => 'password',
     '#title' => t('Password'),
     '#maxlength' => 60,
@@ -1266,7 +1268,7 @@ function user_login_authenticate_validat
 function user_login_final_validate($form, &$form_state) {
   global $user;
   if (!$user->uid) {
-    form_set_error('name', t('Sorry, unrecognized username or password. <a href="@password">Have you forgotten your password?</a>', array('@password' => url('user/password'))));
+    form_set_error('name', t('Sorry, unrecognized username, email address , or password. <a href="@password">Have you forgotten your password?</a>', array('@password' => url('user/password'))));
     watchdog('user', 'Login attempt failed for %user.', array('%user' => $form_state['values']['name']));
   }
 }
@@ -1287,7 +1289,7 @@ function user_authenticate($form_values 
   $password = trim($form_values['pass']);
   // Name and pass keys are required.
   if (!empty($form_values['name']) && !empty($password)) {
-    $account = db_fetch_object(db_query("SELECT * FROM {users} WHERE name = '%s' AND status = 1", $form_values['name']));
+    $account = db_fetch_object(db_query("SELECT * FROM {users} WHERE (name = '%s' OR mail = '%s') AND status = 1", $form_values['name'], $form_values['name']));
     if ($account) {
       // Allow alternate password hashing schemes.
       require_once variable_get('password_inc', './includes/password.inc');