Index: wp-includes/default-filters.php
===================================================================
--- wp-includes/default-filters.php	(revision 23297)
+++ wp-includes/default-filters.php	(working copy)
@@ -177,6 +177,7 @@
 add_filter( 'option_blog_charset',      '_wp_specialchars'                    ); // IMPORTANT: This must not be wp_specialchars() or esc_html() or it'll cause an infinite loop
 add_filter( 'option_home',              '_config_wp_home'                     );
 add_filter( 'option_siteurl',           '_config_wp_siteurl'                  );
+add_filter( 'option_default_role',      '_wp_filter_verify_default_role'      );
 add_filter( 'tiny_mce_before_init',     '_mce_set_direction'                  );
 add_filter( 'pre_kses',                 'wp_pre_kses_less_than'               );
 add_filter( 'sanitize_title',           'sanitize_title_with_dashes',   10, 3 );
Index: wp-includes/capabilities.php
===================================================================
--- wp-includes/capabilities.php	(revision 23297)
+++ wp-includes/capabilities.php	(working copy)
@@ -167,7 +167,7 @@
 		$this->roles[$role] = array(
 			'name' => $display_name,
 			'capabilities' => $capabilities
-			);
+		);
 		if ( $this->use_db )
 			update_option( $this->role_key, $this->roles );
 		$this->role_objects[$role] = new WP_Role( $role, $capabilities );
@@ -193,6 +193,9 @@
 
 		if ( $this->use_db )
 			update_option( $this->role_key, $this->roles );
+
+		if ( get_option( 'default_role' ) == $role )
+			update_option( 'default_role', 'subscriber' );
 	}
 
 	/**
@@ -1466,3 +1469,19 @@
 
 	return false;
 }
+
+/**
+ * Filter "default_role" option
+ *
+ * @since 3.6.0
+ *
+ * @param string $role Role name.
+ * @return string Filtered default role.
+ */
+function _wp_filter_verify_default_role( $role ) {
+	$role_obj = get_role( $role );
+	if ( empty( $role_obj ) )
+		$role = 'subscriber';
+
+	return $role;
+}
\ No newline at end of file
Index: wp-admin/includes/template.php
===================================================================
--- wp-admin/includes/template.php	(revision 23297)
+++ wp-admin/includes/template.php	(working copy)
@@ -756,19 +756,18 @@
  * @param string $selected slug for the role that should be already selected
  */
 function wp_dropdown_roles( $selected = false ) {
-	$p = '';
 	$r = '';
 
-	$editable_roles = get_editable_roles();
+	$editable_roles = array_reverse( get_editable_roles() );
 
 	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>";
+			$r .= "\n\t<option selected='selected' value='" . esc_attr($role) . "'>$name</option>";
 		else
 			$r .= "\n\t<option value='" . esc_attr($role) . "'>$name</option>";
 	}
-	echo $p . $r;
+	echo $r;
 }
 
 /**
