Index: wp-includes/user.php
===================================================================
--- wp-includes/user.php	(revision 12317)
+++ wp-includes/user.php	(working copy)
@@ -495,6 +495,7 @@
  * <li>selected - Which User ID is selected.</li>
  * <li>name - Default is 'user'. Name attribute of select element.</li>
  * <li>class - Class attribute of select element.</li>
+ * <li>blog_id - The Blog id of the blog for setups that use more than one blog.</li>
  * </ol>
  *
  * @since 2.3.0
@@ -504,13 +505,13 @@
  * @return string|null Null on display. String of HTML content on retrieve.
  */
 function wp_dropdown_users( $args = '' ) {
-	global $wpdb;
+	global $wpdb, $blog_id;
 	$defaults = array(
 		'show_option_all' => '', 'show_option_none' => '',
 		'orderby' => 'display_name', 'order' => 'ASC',
 		'include' => '', 'exclude' => '', 'multi' => 0,
 		'show' => 'display_name', 'echo' => 1,
-		'selected' => 0, 'name' => 'user', 'class' => ''
+		'selected' => 0, 'name' => 'user', 'class' => '', 'blog_id' = $blog_id,
 	);
 
 	$defaults['selected'] = is_author() ? get_query_var( 'author' ) : 0;
@@ -518,8 +519,7 @@
 	$r = wp_parse_args( $args, $defaults );
 	extract( $r, EXTR_SKIP );
 
-	$query = "SELECT * FROM $wpdb->users";
-
+	$query = "SELECT {$wpdb->users}.* FROM $wpdb->users, $wpdb->usermeta";
 	$query_where = array();
 
 	if ( is_array($include) )
@@ -534,8 +534,9 @@
 	if ( $exclude )
 		$query_where[] = "ID NOT IN ($exclude)";
 
+	$query .= " WHERE {$wpdb->users}.ID = {$wpdb->usermeta}.user_id AND meta_key = '{$wpdb->prefix}capabilities'"
 	if ( $query_where )
-		$query .= " WHERE " . join(' AND', $query_where);
+		$query .= " AND " . join(' AND', $query_where);
 
 	$query .= " ORDER BY $orderby $order";
 
