Index: wp-admin/user-edit.php
===================================================================
--- wp-admin/user-edit.php	(revision 19382)
+++ wp-admin/user-edit.php	(working copy)
@@ -118,19 +118,15 @@
 		$wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->signups} SET user_email = %s WHERE user_login = %s", $_POST[ 'email' ], $user_login ) );
 
 	// WPMU must delete the user from the current blog if WP added him after editing.
-	$delete_role = false;
-	$blog_prefix = $wpdb->get_blog_prefix();
 	if ( $user_id != $current_user->ID ) {
-		$cap = $wpdb->get_var( "SELECT meta_value FROM {$wpdb->usermeta} WHERE user_id = '{$user_id}' AND meta_key = '{$blog_prefix}capabilities' AND meta_value = 'a:0:{}'" );
-		if ( !is_network_admin() && null == $cap && $_POST[ 'role' ] == '' ) {
+		$cap = get_user_meta( $user_id, $wpdb->prefix . 'capabilities', true );
+		if ( !is_network_admin() && empty( $cap ) && empty( $_POST['role'] ) ) {
 			$_POST[ 'role' ] = 'contributor';
-			$delete_role = true;
+			delete_user_meta( $user_id, $wpdb->prefix . 'capabilities' );
 		}
 	}
 	if ( !isset( $errors ) || ( isset( $errors ) && is_object( $errors ) && false == $errors->get_error_codes() ) )
-		$errors = edit_user($user_id);
-	if ( $delete_role ) // stops users being added to current blog when they are edited
-		delete_user_meta( $user_id, $blog_prefix . 'capabilities' );
+		$errors = edit_user( $user_id );
 
 	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 );
