Index: src/wp-admin/admin-ajax.php
===================================================================
--- src/wp-admin/admin-ajax.php	(revision 38062)
+++ src/wp-admin/admin-ajax.php	(working copy)
@@ -62,9 +62,9 @@
 	'send-attachment-to-editor', 'save-attachment-order', 'heartbeat', 'get-revision-diffs',
 	'save-user-color-scheme', 'update-widget', 'query-themes', 'parse-embed', 'set-attachment-thumbnail',
 	'parse-media-shortcode', 'destroy-sessions', 'install-plugin', 'update-plugin', 'press-this-save-post',
-	'press-this-add-category', 'crop-image', 'generate-password', 'save-wporg-username', 'delete-plugin',
-	'search-plugins', 'search-install-plugins', 'activate-plugin', 'update-theme', 'delete-theme',
-	'install-theme', 'test_url',
+	'press-this-add-category', 'crop-image', 'generate-password', 'save-wporg-username',
+	'get-post-thumbnail-html', 'delete-plugin', 'search-plugins', 'search-install-plugins', 'activate-plugin',
+	'update-theme', 'delete-theme', 'install-theme', 'test_url',
 );
 
 // Deprecated
Index: src/wp-admin/includes/ajax-actions.php
===================================================================
--- src/wp-admin/includes/ajax-actions.php	(revision 38062)
+++ src/wp-admin/includes/ajax-actions.php	(working copy)
@@ -2164,6 +2164,31 @@
 }
 
 /**
+ * Ajax handler for retrieving HTML for the featured image.
+ *
+ * @since 4.6.0
+ */
+function wp_ajax_get_post_thumbnail_html() {
+	$post_ID = intval( $_POST['post_id'] );
+
+	check_ajax_referer( "update-post_$post_ID" );
+
+	if ( ! current_user_can( 'edit_post', $post_ID ) ) {
+		wp_die( -1 );
+	}
+
+	$thumbnail_id = intval( $_POST['thumbnail_id'] );
+
+	// For backwards compatibility, -1 refers to no featured image.
+	if ( -1 === $thumbnail_id ) {
+		$thumbnail_id = null;
+	}
+
+	$return = _wp_post_thumbnail_html( $thumbnail_id, $post_ID );
+	wp_send_json_success( $return );
+}
+
+/**
  * Ajax handler for setting the featured image for an attachment.
  *
  * @since 4.0.0
Index: src/wp-admin/includes/post.php
===================================================================
--- src/wp-admin/includes/post.php	(revision 38062)
+++ src/wp-admin/includes/post.php	(working copy)
@@ -1428,10 +1428,12 @@
 				$thumbnail_html
 			);
 			$content .= '<p class="hide-if-no-js howto" id="set-post-thumbnail-desc">' . __( 'Click the image to edit or update' ) . '</p>';
-			$content .= '<p class="hide-if-no-js"><a href="#" id="remove-post-thumbnail" onclick="WPRemoveThumbnail(\'' . $ajax_nonce . '\');return false;">' . esc_html( $post_type_object->labels->remove_featured_image ) . '</a></p>';
+			$content .= '<p class="hide-if-no-js"><a href="#" id="remove-post-thumbnail">' . esc_html( $post_type_object->labels->remove_featured_image ) . '</a></p>';
 		}
 	}
 
+	$content .= '<input type="hidden" id="_thumbnail_id" name="_thumbnail_id" value="' . esc_attr( $thumbnail_id ? $thumbnail_id : '-1' ) . '" />';
+
 	/**
 	 * Filters the admin post thumbnail HTML markup to return.
 	 *
Index: src/wp-includes/js/autosave.js
===================================================================
--- src/wp-includes/js/autosave.js	(revision 38062)
+++ src/wp-includes/js/autosave.js	(working copy)
@@ -34,7 +34,8 @@
 				post_author: $( '#post_author' ).val() || '',
 				post_title: $( '#title' ).val() || '',
 				content: $( '#content' ).val() || '',
-				excerpt: $( '#excerpt' ).val() || ''
+				excerpt: $( '#excerpt' ).val() || '',
+				_thumbnail_id: $( '#_thumbnail_id' ).val() || -1
 			};
 
 			if ( type === 'local' ) {
Index: src/wp-includes/js/media-editor.js
===================================================================
--- src/wp-includes/js/media-editor.js	(revision 38062)
+++ src/wp-includes/js/media-editor.js	(working copy)
@@ -649,16 +649,26 @@
 
 			settings.post.featuredImageId = id;
 
-			wp.media.post( 'set-post-thumbnail', {
-				json:         true,
+			wp.media.post( 'get-post-thumbnail-html', {
 				post_id:      settings.post.id,
 				thumbnail_id: settings.post.featuredImageId,
 				_wpnonce:     settings.post.nonce
 			}).done( function( html ) {
+				if ( html == '0' ) {
+					window.alert( window.setPostThumbnailL10n.error );
+					return;
+				}
 				$( '.inside', '#postimagediv' ).html( html );
 			});
 		},
 		/**
+		 * Remove the featured image id, save the post thumbnail data and
+		 * set the HTML in the post meta box to no featured image.
+		 */
+		remove: function() {
+			wp.media.featuredImage.set( -1 );
+		},
+		/**
 		 * The Featured Image workflow
 		 *
 		 * @global wp.media.controller.FeaturedImage
@@ -735,7 +745,8 @@
 
 				wp.media.featuredImage.frame().open();
 			}).on( 'click', '#remove-post-thumbnail', function() {
-				wp.media.view.settings.post.featuredImageId = -1;
+				wp.media.featuredImage.remove();
+				return false;
 			});
 		}
 	};
Index: src/wp-includes/post.php
===================================================================
--- src/wp-includes/post.php	(revision 38062)
+++ src/wp-includes/post.php	(working copy)
@@ -1617,7 +1617,7 @@
  */
 function add_post_meta( $post_id, $meta_key, $meta_value, $unique = false ) {
 	// Make sure meta is added to the post, not a revision.
-	if ( $the_post = wp_is_post_revision($post_id) )
+	if ( '_thumbnail_id' !== $meta_key && ( $the_post = wp_is_post_revision( $post_id ) ) )
 		$post_id = $the_post;
 
 	return add_metadata('post', $post_id, $meta_key, $meta_value, $unique);
@@ -1640,7 +1640,7 @@
  */
 function delete_post_meta( $post_id, $meta_key, $meta_value = '' ) {
 	// Make sure meta is added to the post, not a revision.
-	if ( $the_post = wp_is_post_revision($post_id) )
+	if ( '_thumbnail_id' !== $meta_key && ( $the_post = wp_is_post_revision( $post_id ) ) )
 		$post_id = $the_post;
 
 	return delete_metadata('post', $post_id, $meta_key, $meta_value);
@@ -1682,7 +1682,7 @@
  */
 function update_post_meta( $post_id, $meta_key, $meta_value, $prev_value = '' ) {
 	// Make sure meta is added to the post, not a revision.
-	if ( $the_post = wp_is_post_revision($post_id) )
+	if ( '_thumbnail_id' !== $meta_key && ( $the_post = wp_is_post_revision( $post_id ) ) )
 		$post_id = $the_post;
 
 	return update_metadata('post', $post_id, $meta_key, $meta_value, $prev_value);
@@ -3260,6 +3260,15 @@
 		}
 	}
 
+	if ( isset( $postarr['_thumbnail_id'] ) && ( post_type_supports( $post_type, 'thumbnail' ) || 'revision' === $post_type ) ) {
+		$thumbnail_id = intval( $postarr['_thumbnail_id'] );
+		if ( -1 === $thumbnail_id ) {
+			delete_post_thumbnail( $post_ID );
+		} else {
+			set_post_thumbnail( $post_ID, $thumbnail_id );
+		}
+	}
+
 	if ( ! empty( $postarr['meta_input'] ) ) {
 		foreach ( $postarr['meta_input'] as $field => $value ) {
 			update_post_meta( $post_ID, $field, $value );
Index: src/wp-includes/revision.php
===================================================================
--- src/wp-includes/revision.php	(revision 38062)
+++ src/wp-includes/revision.php	(working copy)
@@ -34,6 +34,7 @@
 			'post_title' => __( 'Title' ),
 			'post_content' => __( 'Content' ),
 			'post_excerpt' => __( 'Excerpt' ),
+			'_thumbnail_id' => __( 'Featured Image' ),
 		);
 	}
 
@@ -530,6 +531,7 @@
 	$post->post_excerpt = $preview->post_excerpt;
 
 	add_filter( 'get_the_terms', '_wp_preview_terms_filter', 10, 3 );
+	add_filter( 'get_post_metadata', '_wp_preview_post_thumbnail_filter', 10, 4 );
 
 	return $post;
 }
@@ -578,6 +580,37 @@
 }
 
 /**
+ * Filters post thumbnail lookup to set the post thumbnail.
+ *
+ * @since 4.6.0
+ * @access private
+ *
+ * @param null|array|string $value     The value to return - a single metadata value, or an array of values.
+ * @param int               $post_id   Post ID.
+ * @param string            $meta_key  Meta key.
+ * @param bool              $single    Whether to return only the first value of the specified $meta_key.
+ * @return null|array The default return value or the post thumbnail meta array.
+ */
+function _wp_preview_post_thumbnail_filter( $value, $post_id, $meta_key, $single ) {
+	if ( '_thumbnail_id' !== $meta_key ) {
+		return $value;
+	}
+
+	$preview = wp_get_post_autosave( $post_id );
+	if ( ! is_object( $preview ) ) {
+		return $value;
+	}
+
+	remove_filter( 'get_post_metadata', '_wp_preview_post_thumbnail_filter', 10, 4 );
+
+	$value = get_post_meta( $preview->ID, '_thumbnail_id', $single );
+
+	add_filter( 'get_post_metadata', '_wp_preview_post_thumbnail_filter', 10, 4 );
+
+	return $value;
+}
+
+/**
  * Gets the post revision version.
  *
  * @since 3.6.0
