diff --git a/modules/user/user.module b/modules/user/user.module
index 6f9354971677a14c6a5ba5ee7e294d52458f0e27..ff1869f10af1ccee892e0cb791d2a3abf7d70ddc 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -874,7 +874,7 @@ function user_search_execute($keys = NULL, $conditions = NULL) {
   // Replace wildcards with MySQL/PostgreSQL wildcards.
   $keys = preg_replace('!\*+!', '%', $keys);
   $query = db_select('users')->extend('PagerDefault');
-  $query->fields('users', array('name', 'uid'));
+  $query->fields('users', array('uid'));
   if (user_access('administer users')) {
     // Administrators can also search in the otherwise private email field.
     $query->fields('users', array('mail'));
@@ -885,20 +885,25 @@ function user_search_execute($keys = NULL, $conditions = NULL) {
   else {
     $query->condition('name', '%' . db_like($keys) . '%', 'LIKE');
   }
-  $result = $query
+  $uids = $query
     ->limit(15)
-    ->execute();
-  if (user_access('administer users')) {
-    foreach ($result as $account) {
-      $find[] = array('title' => $account->name . ' (' . $account->mail . ')', 'link' => url('user/' . $account->uid, array('absolute' => TRUE)));
-    }
-  }
-  else {
-    foreach ($result as $account) {
-      $find[] = array('title' => $account->name, 'link' => url('user/' . $account->uid, array('absolute' => TRUE)));
+    ->execute()
+    ->fetchCol();
+  $accounts = user_load_multiple($uids);
+
+  $results = array();
+  foreach ($accounts as $account) {
+    $result = array(
+      'title' => format_username($account),
+      'link' => url('user/' . $account->uid, array('absolute' => TRUE)),
+    );
+    if (user_access('administer users')) {
+      $result['title'] .= ' (' . $account->mail . ')';
     }
+    $results[] = $result;
   }
-  return $find;
+
+  return $results;
 }
 
 /**