Index: masquerade.module
===================================================================
--- masquerade.module	(revision 111)
+++ masquerade.module	(working copy)
@@ -639,7 +639,12 @@
 function masquerade_block_1_validate($form, &$form_state) {
   global $user;
   //unset($form);
-  $name = $form_state['values']['masquerade_user_field'];
+  if (module_exists('realname')) {
+    $name = preg_replace('^.* \((.*)\)^', '$1', $form_state['values']['masquerade_user_field']);
+  }
+  else {
+    $name = $form_state['values']['masquerade_user_field'];
+  }
   if (isset($_SESSION['masquerading'])) {
     form_set_error('masquerade_user_field', t('You are already masquerading. Please <a href="@unswitch">switch back</a> to your account to masquerade as another user.', array('@unswitch' => url('masquerade/unswitch', array('query' => array('token' => drupal_get_token('masquerade/unswitch')))))));
   }
@@ -691,11 +696,29 @@
     $matches[$anonymous] = $anonymous;
   }
   // Other suggestions.
-  $result = db_query_range("SELECT name FROM {users} WHERE LOWER(name) LIKE LOWER(:string)", 0, 10, array(
-    ':string' => $string . '%',
-  ));
+  if (module_exists('realname')) {
+    $result = db_query_range("
+      SELECT u.name, rn.realname 
+      FROM {users} u
+      LEFT JOIN {realname} rn ON rn.uid = u.uid 
+      WHERE LOWER(realname) LIKE LOWER(:string)", 0, 10, array(
+      ':string' => '%' . $string . '%',
+    ));
+  }
+  else {
+    $result = db_query_range("SELECT name FROM {users} WHERE LOWER(name) LIKE LOWER(:string)", 0, 10, array(
+      ':string' => '%' . $string . '%',
+    ));
+  }
+  
   foreach ($result as $user) {
-    $matches[$user->name] = check_plain($user->name);
+    if (module_exists('realname')) {
+      $name = $user->realname . ' (' . $user->name . ')';
+      $matches[$name] = $name;
+    }
+    else {
+      $matches[$user->name] = check_plain($user->name);
+    }
   }
   if (module_exists('devel')) {
     $GLOBALS['devel_shutdown'] = FALSE;
