--- user_reference.module	2011-01-18 10:58:31.529443576 +0100
+++ user_reference.module	2011-01-18 10:58:22.821526501 +0100
@@ -459,10 +459,15 @@
     }
   }
 
-  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'])) {
+    $roles = array();
+    // 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 !== '') {
