Index: trunk/modules/user.module
===================================================================
--- trunk/modules/user.module	(revision 43)
+++ trunk/modules/user.module	(working copy)
@@ -396,8 +396,14 @@
 
   // Replace wildcards with MySQL/PostgreSQL wildcards.
   $keys = str_replace('*', '%', $keys);
+  $keys = strtolower($keys);
 
-  $result = db_query_range("SELECT * FROM {users} WHERE LOWER(name) LIKE '%%%s%%'", strtolower($keys), 0, 20);
+  if (module_exist('profile')) {
+    $result = db_query_range("SELECT DISTINCT(u.uid), u.name FROM {users} u LEFT JOIN {profile_values} p ON p.uid=u.uid LEFT JOIN {profile_fields} f ON f.fid=p.fid WHERE LOWER(u.name) LIKE '%%%s%%' OR (LOWER(p.value) LIKE '%%%s%%' AND f.visibility != %d)", $keys, $keys, PROFILE_PRIVATE, 0, 20);
+  }
+  else {
+    $result = db_query_range("SELECT u.uid, u.name FROM {users} u WHERE LOWER(name) LIKE '%%%s%%'", $keys, 0, 20);
+  }
   while ($account = db_fetch_object($result)) {
     $find[] = array('title' => $account->name, 'link' => url("user/$account->uid/view"), 'user' => $account->name);
   }
