Index: src/wp-includes/class-wp-user.php
===================================================================
--- src/wp-includes/class-wp-user.php	(revision 33946)
+++ src/wp-includes/class-wp-user.php	(working copy)
@@ -313,6 +313,26 @@
 	}
 
 	/**
+	 * Magic method for unsetting a certain custom field
+	 *
+	 * @since 4.4.0
+	 */
+	function __unset( $key ) {
+		if ( 'id' == $key ) {
+			_deprecated_argument( 'WP_User->id', '2.1', __( 'Use <code>WP_User->ID</code> instead.' ) );
+			$key = 'ID';
+		}
+
+		if ( isset( $this->data->$key ) ) {
+			unset( $this->data->$key );
+		}
+
+		if ( isset( self::$back_compat_keys[ $key ] ) ) {
+			unset( self::$back_compat_keys[ $key ] );
+		}
+	}
+
+	/**
 	 * Determine whether the user exists in the database.
 	 *
 	 * @since 3.4.0
Index: tests/phpunit/tests/user.php
===================================================================
--- tests/phpunit/tests/user.php	(revision 33946)
+++ tests/phpunit/tests/user.php	(working copy)
@@ -162,6 +162,46 @@
 		}
 	}
 
+	/**
+	 * Test the magic __unset method
+	 *
+	 * @ticket 20043
+	 */
+	public function test_user_unset() {
+		// New user
+		$user_id = $this->factory->user->create( array( 'role' => 'author' ) );
+		$user = new WP_User( $user_id );
+
+		// Test custom fields
+		$user->customField = 123;
+		$this->assertEquals( $user->customField, 123 );
+		unset( $user->customField );
+		$this->assertFalse( isset( $user->customField ) );
+		return $user;
+	}
+
+	/**
+	 * @depends test_user_unset
+	 * @expectedDeprecated WP_User->id
+	 * @ticket 20043
+	 */
+	function test_user_unset_lowercase_id( $user ) {
+		// Test 'id' (lowercase)
+		unset( $user->id );
+		return $user;
+	}
+
+	/**
+	 * @depends test_user_unset_lowercase_id
+	 * @ticket 20043
+	 */
+	function test_user_unset_uppercase_id( $user ) {
+		// Test 'ID'
+		$this->assertNotEmpty( $user->ID );
+		unset( $user->ID );
+		$this->assertEmpty( $user->ID );
+	}
+
 	// Test meta property magic functions for property get/set/isset.
 	function test_user_meta_properties() {
 		global $wpdb;
