--- user_reference/user_reference.module	2011-02-01 12:00:07.000000000 +0100
+++ user_reference/user_reference.module	2011-02-01 12:00:12.000000000 +0100
@@ -450,10 +450,14 @@
     $query->condition('u.status', $field['settings']['referenceable_status']);
   }
 
-  if (is_array($field['settings']['referenceable_roles']) && (!in_array(DRUPAL_AUTHENTICATED_RID, $field['settings']['referenceable_roles']))) {
-    $query->join('users_roles', 'r', 'u.uid = r.uid');
-    $query->addField('r', 'rid');
-    $query->condition('r.rid', $field['settings']['referenceable_roles']);
+  if (is_array($field['settings']['referenceable_roles'])) {
+      // Keep only selected checkboxes
+    $roles = array_filter($field['settings']['referenceable_roles']);
+    if (!empty($roles) && (!in_array(DRUPAL_AUTHENTICATED_RID, $roles))) {
+      $query->join('users_roles', 'r', 'u.uid = r.uid');
+      $query->addField('r', 'rid');
+      $query->condition('r.rid', $roles);
+    }
   }
 
   if ($string !== '') {
