Index: modules/user/user.module
===================================================================
--- modules/user/user.module	(revision 195)
+++ modules/user/user.module	(revision 196)
@@ -261,8 +264,10 @@
 }
 
 function user_validate_mail($mail) {
-  if (!$mail) return t('You must enter an e-mail address.');
-  if (!valid_email_address($mail)) {
+  if (!user_access('administer users'))
+    // Allow administers to edit users without emails addresses.
+    if (!$mail) return t('You must enter an e-mail address.');
+  if ($mail && !valid_email_address($mail)) {
     return t('The e-mail address %mail is not valid.', array('%mail' => $mail));
   }
 }
@@ -1370,7 +1376,7 @@
   if ($error = user_validate_mail($edit['mail'])) {
     form_set_error('mail', $error);
   }
-  else if (db_num_rows(db_query("SELECT uid FROM {users} WHERE uid != %d AND LOWER(mail) = LOWER('%s')", $uid, $edit['mail'])) > 0) {
+  else if ($edit['mail'] && db_num_rows(db_query("SELECT uid FROM {users} WHERE uid != %d AND LOWER(mail) = LOWER('%s')", $uid, $edit['mail'])) > 0) {
     form_set_error('mail', t('The e-mail address %email is already registered. <a href="@password">Have you forgotten your password?</a>', array('%email' => $edit['mail'], '@password' => url('user/password'))));
   }
   else if (drupal_is_denied('mail', $edit['mail'])) {
