diff -r e185f8cbbec5 wp-admin/includes/template.php
--- a/wp-admin/includes/template.php	Tue Aug 06 11:50:50 2013 +0100
+++ b/wp-admin/includes/template.php	Tue Aug 06 19:27:45 2013 +0100
@@ -751,9 +751,19 @@
 /**
  * Print out <option> html elements for role selectors
  *
+ * <code>
+ * // call with a single pre-selected option
+ * wp_dropdown_roles( 'editor' ):
+ *
+ * // call with multiple pre-selected options
+ * wp_dropdown_roles( array( 'editor', 'administrator' ) ):
+ * </code>
+ * 
  * @since 2.1.0
  *
- * @param string $selected slug for the role that should be already selected
+ * @param	string|array	$selected list of role slugs that should be already
+ * selected
+ * @return	string	list of HTML <option> elements with user roles
  */
 function wp_dropdown_roles( $selected = false ) {
 	$p = '';
@@ -761,10 +771,14 @@
 
 	$editable_roles = get_editable_roles();
 
+	// For backwards compatibility
+	if ( is_string($selected) )
+		$selected = array( $selected );
+
 	foreach ( $editable_roles as $role => $details ) {
 		$name = translate_user_role($details['name'] );
-		if ( $selected == $role ) // preselect specified role
-			$p = "\n\t<option selected='selected' value='" . esc_attr($role) . "'>$name</option>";
+		if ( is_array($selected) AND in_array($role,$selected) ) // preselect specified role
+			$p .= "\n\t<option selected='selected' value='" . esc_attr($role) . "'>$name</option>";
 		else
 			$r .= "\n\t<option value='" . esc_attr($role) . "'>$name</option>";
 	}
