Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.892
diff -u -r1.892 user.module
--- modules/user/user.module	3 Feb 2008 19:23:01 -0000	1.892
+++ modules/user/user.module	6 Feb 2008 11:32:54 -0000
@@ -759,11 +759,16 @@
           // Perform database queries to gather online user lists.  We use s.timestamp
           // rather than u.access because it is much faster.
           $anonymous_count = sess_count($interval);
-          $authenticated_users = db_query('SELECT DISTINCT u.uid, u.name, s.timestamp FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.timestamp >= %d AND s.uid > 0 ORDER BY s.timestamp DESC', $interval);
+          $authenticated_users = db_query('SELECT u.uid, u.name, s.timestamp FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.timestamp >= %d AND s.uid > 0 ORDER BY s.timestamp DESC', $interval);
           $authenticated_count = 0;
           $max_users = variable_get('user_block_max_list_count', 10);
           $items = array();
+          $listed_user_ids = array();
           while ($account = db_fetch_object($authenticated_users)) {
+            if (in_array($account->uid, $listed_user_ids)) {
+              continue;
+            }
+            $listed_user_ids[] = $account->uid;
             if ($max_users > 0) {
               $items[] = $account;
               $max_users--;

