Index: wp-includes/user.php
===================================================================
--- wp-includes/user.php	(revision 20481)
+++ wp-includes/user.php	(working copy)
@@ -1143,15 +1143,21 @@
  *
  * @since 3.0.0
  *
- * @param int $id User ID
+ * @param WP_User $user User object to be cleaned from the cache
  */
-function clean_user_cache($id) {
-	$user = WP_User::get_data_by( 'id', $id );
+function clean_user_cache( $user ) {
+	if ( is_numeric( $user ) ) {
+		_deprecated_argument( __FUNCTION__, '3.4', 'Pass the full user object instead of the ID.' );
+		$user = WP_User::get_data_by( 'id', $id );
+	}
 
-	wp_cache_delete($id, 'users');
-	wp_cache_delete($user->user_login, 'userlogins');
-	wp_cache_delete($user->user_email, 'useremail');
-	wp_cache_delete($user->user_nicename, 'userslugs');
+	if ( ! $user->exists() )
+		return;
+
+	wp_cache_delete( $user->ID, 'users' );
+	wp_cache_delete( $user->user_login, 'userlogins' );
+	wp_cache_delete( $user->user_email, 'useremail' );
+	wp_cache_delete( $user->user_nicename, 'userslugs' );
 }
 
 /**
Index: wp-admin/includes/user.php
===================================================================
--- wp-admin/includes/user.php	(revision 20481)
+++ wp-admin/includes/user.php	(working copy)
@@ -237,6 +237,7 @@
 	global $wpdb;
 
 	$id = (int) $id;
+	$user = new WP_User( $id );
 
 	// allow for transaction statement
 	do_action('delete_user', $id);
@@ -262,7 +263,7 @@
 		$wpdb->update( $wpdb->links, array('link_owner' => $reassign), array('link_owner' => $id) );
 	}
 
-	clean_user_cache($id);
+	clean_user_cache( $user );
 
 	// FINALLY, delete user
 	if ( !is_multisite() ) {
Index: wp-admin/includes/ms.php
===================================================================
--- wp-admin/includes/ms.php	(revision 20481)
+++ wp-admin/includes/ms.php	(working copy)
@@ -132,6 +132,7 @@
 	global $wpdb;
 
 	$id = (int) $id;
+	$user = new WP_User( $id );
 
 	do_action( 'wpmu_delete_user', $id );
 
@@ -162,7 +163,7 @@
 	$wpdb->delete( $wpdb->users, array( 'ID' => $id ) );
 	$wpdb->delete( $wpdb->usermeta, array( 'user_id' => $id ) );
 
-	clean_user_cache( $id );
+	clean_user_cache( $user );
 
 	// allow for commit transaction
 	do_action( 'deleted_user', $id );
@@ -389,7 +390,8 @@
 
 	$wpdb->update( $wpdb->users, array( $pref => $value ), array( 'ID' => $id ) );
 
-	clean_user_cache( $id );
+	$user = new WP_User( $id );
+	clean_user_cache( $user );
 
 	if ( $pref == 'spam' ) {
 		if ( $value == 1 )
@@ -407,7 +409,7 @@
 	if ( !$user = get_userdata( $id ) )
 		return false;
 
-	clean_user_cache( $id );
+	clean_user_cache( $user );
 
 	return $id;
 }
