Index: wp-admin/includes/class-wp-users-list-table.php
--- wp-admin/includes/class-wp-users-list-table.php
+++ wp-admin/includes/class-wp-users-list-table.php
@@ -257,7 +257,14 @@
 		} else {
 			$edit = '<strong>' . $user_object->user_login . '</strong>';
 		}
-		$role_name = isset( $wp_roles->role_names[$role] ) ? translate_user_role( $wp_roles->role_names[$role] ) : __( 'None' );
+
+		// Compare user role against currently editable roles
+		if ( in_array( $role, array_keys( get_editable_roles() ) ) ) {
+			$role_name = translate_user_role( $wp_roles->role_names[$role] );
+		} else {
+			$role_name = __( 'None' );
+		}
+
 		$avatar = get_avatar( $user_object->ID, 32 );
 
 		$r = "<tr id='user-$user_object->ID'$style>";
Index: wp-admin/user-edit.php
--- wp-admin/user-edit.php
+++ wp-admin/user-edit.php
@@ -130,10 +130,13 @@
 			$delete_role = true;
 		}
 	}
-	if ( !isset( $errors ) || ( isset( $errors ) && is_object( $errors ) && false == $errors->get_error_codes() ) )
+	if ( !isset( $errors ) || ( isset( $errors ) && is_object( $errors ) && false == $errors->get_error_codes() ) ) {
 		$errors = edit_user($user_id);
+		$user   = get_userdata( $user_id );
+	}
+
 	if ( $delete_role ) // stops users being added to current blog when they are edited
-		delete_user_meta( $user_id, $blog_prefix . 'capabilities' );
+		$user->remove_role( $_POST[ 'role' ] );
 
 	if ( is_multisite() && is_network_admin() && !IS_PROFILE_PAGE && current_user_can( 'manage_network_options' ) && !isset($super_admins) && empty( $_POST['super_admin'] ) == is_super_admin( $user_id ) )
 		empty( $_POST['super_admin'] ) ? revoke_super_admin( $user_id ) : grant_super_admin( $user_id );
@@ -249,10 +252,10 @@
 <tr><th><label for="role"><?php _e('Role') ?></label></th>
 <td><select name="role" id="role">
 <?php
-// Get the highest/primary role for this user
+// Compare user role against currently editable roles
 // TODO: create a function that does this: wp_get_user_role()
-$user_roles = $profileuser->roles;
-$user_role = array_shift($user_roles);
+$user_roles = array_intersect( array_values( $profileuser->roles ), array_keys( get_editable_roles() ) );
+$user_role  = array_shift( $user_roles );
 
 // print the full list of roles with the primary one selected.
 wp_dropdown_roles($user_role);
