Index: modules/user/user.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.admin.inc,v
retrieving revision 1.88
diff -u -p -r1.88 user.admin.inc
--- modules/user/user.admin.inc	3 Nov 2009 05:27:18 -0000	1.88
+++ modules/user/user.admin.inc	8 Dec 2009 11:48:37 -0000
@@ -137,12 +137,11 @@ function user_admin_account() {
   );
 
   $query = db_select('users', 'u');
-  $query->leftJoin('users_roles', 'ur', 'u.uid = ur.uid');
   $query->condition('u.uid', 0, '<>');
   user_build_filter_query($query);
 
   $count_query = clone $query;
-  $count_query->addExpression('COUNT(DISTINCT u.uid)');
+  $count_query->addExpression('COUNT(u.uid)');
 
   $query = $query->extend('PagerDefault')->extend('TableSort');
   $query
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.1077
diff -u -p -r1.1077 user.module
--- modules/user/user.module	7 Nov 2009 14:27:20 -0000	1.1077
+++ modules/user/user.module	8 Dec 2009 11:48:38 -0000
@@ -2820,7 +2820,8 @@ function user_filters() {
  */
 function user_build_filter_query(SelectQuery $query) {
   $filters = user_filters();
-
+  $role_count = 0;
+  $permission_count = 0;
   // Extend Query with filter conditions.
   foreach (isset($_SESSION['user_overview_filter']) ? $_SESSION['user_overview_filter'] : array() as $filter) {
     list($key, $value) = $filter;
@@ -2834,8 +2835,19 @@ function user_build_filter_query(SelectQ
       if (user_access($value, $account)) {
         continue;
       }
-      $query->leftJoin('role_permission', 'p', 'ur.rid = p.rid');
-      $query->condition(db_or()->condition('u.uid', 1)->condition('p.permission', $value));
+      $user_role_alias = 'ur' . $role_count;
+      $permission_alias = 'p' . $permission_count;
+      $query->innerJoin('users_roles', $user_role_alias, $user_role_alias . '.uid = u.uid');
+      $query->innerJoin('role_permission', $permission_alias , $user_role_alias . '.rid = ' . $permission_alias . '.rid');
+      $query->condition($permission_alias . '.permission', $value);
+      $role_count++;
+      $permission_count++;
+    }
+    else if ($key == 'role') {
+      $user_role_alias = 'ur' . $role_count;
+      $query->innerJoin('users_roles', $user_role_alias, $user_role_alias . '.uid = u.uid');
+      $query->condition($user_role_alias . '.rid' , $value);
+      $role_count++;
     }
     else {
       $query->condition($filters[$key]['field'], $value);
