--- user.module	2007-01-29 13:20:45.000000000 -0800
+++ user.module	2007-01-29 13:20:45.000000000 -0800
@@ -9,13 +9,23 @@
       }
     case 'search':
       if (user_access('access user profiles')) {
+        $admin = user_access('administer users');
         $find = array();
         // Replace wildcards with MySQL/PostgreSQL wildcards.
         $keys = preg_replace('!\*+!', '%', $keys);
-        $result = pager_query("SELECT * FROM {users} WHERE LOWER(name) LIKE LOWER('%%%s%%')", 15, 0, NULL, $keys);
-        while ($account = db_fetch_object($result)) {
-          $find[] = array('title' => $account->name, 'link' => url('user/'. $account->uid, NULL, NULL, TRUE));
+        if ($admin) {
+          $result = pager_query("SELECT * FROM {users} WHERE LOWER(name) LIKE LOWER('%%%s%%') OR LOWER(mail) LIKE LOWER('%%%s%%')", 15, 0, NULL, $keys, $keys);
+        }
+        else {
+          $result = pager_query("SELECT * FROM {users} WHERE LOWER(name) LIKE LOWER('%%%s%%')", 15, 0, NULL, $keys);
         }
+        while ($account = db_fetch_object($result)) {
+          if ($admin) {
+            $find[] = array('title' => $account->name . ' (' . $account->mail . ')', 'link' => url('user/'. $account->uid, NULL, NULL, TRUE));
+          }
+          else {
+            $find[] = array('title' => $account->name, 'link' => url('user/'. $account->uid, NULL, NULL, TRUE));
+          }
+	}
         return $find;
       }
   }

