Index: wp-admin/includes/ajax-actions.php
===================================================================
--- wp-admin/includes/ajax-actions.php	(revision 22961)
+++ wp-admin/includes/ajax-actions.php	(working copy)
@@ -1674,23 +1674,31 @@
 }
 
 function wp_ajax_set_post_thumbnail() {
+	$json = ! empty( $_REQUEST['json'] );
+
 	$post_ID = intval( $_POST['post_id'] );
-	if ( !current_user_can( 'edit_post', $post_ID ) )
-		wp_die( -1 );
+	if ( !current_user_can( 'edit_post', $post_ID ) ) {
+		$json ? wp_send_json_error() : wp_die( -1 );
+	}
 	$thumbnail_id = intval( $_POST['thumbnail_id'] );
 
 	check_ajax_referer( "set_post_thumbnail-$post_ID" );
 
 	if ( $thumbnail_id == '-1' ) {
-		if ( delete_post_thumbnail( $post_ID ) )
-			wp_die( _wp_post_thumbnail_html( null, $post_ID ) );
-		else
-			wp_die( 0 );
+		if ( delete_post_thumbnail( $post_ID ) ) {
+			$return = _wp_post_thumbnail_html( null, $post_ID );
+			$json ? wp_send_json_success( $return ) : wp_die( $json );
+		} else {
+			$json ? wp_send_json_error() : wp_die( 0 );
+		}
 	}
 
-	if ( set_post_thumbnail( $post_ID, $thumbnail_id ) )
-		wp_die( _wp_post_thumbnail_html( $thumbnail_id, $post_ID ) );
-	wp_die( 0 );
+	if ( set_post_thumbnail( $post_ID, $thumbnail_id ) ) {
+		$return = _wp_post_thumbnail_html( $thumbnail_id, $post_ID );
+		$json ? wp_send_json_success( $return ) : wp_die( $json );
+	}
+
+	$json ? wp_send_json_error() : wp_die( 0 );
 }
 
 function wp_ajax_date_format() {
Index: wp-admin/includes/post.php
===================================================================
--- wp-admin/includes/post.php	(revision 22961)
+++ wp-admin/includes/post.php	(working copy)
@@ -199,14 +199,6 @@
 			set_post_format( $post_ID, false );
 	}
 
-	// Featured Images
-	if ( isset( $post_data['thumbnail_id'] ) ) {
-		if ( '-1' == $post_data['thumbnail_id'] )
-			delete_post_thumbnail( $post_ID );
-		else
-			set_post_thumbnail( $post_ID, $post_data['thumbnail_id'] );
-	}
-
 	// Meta Stuff
 	if ( isset($post_data['meta']) && $post_data['meta'] ) {
 		foreach ( $post_data['meta'] as $key => $value ) {
Index: wp-admin/includes/meta-boxes.php
===================================================================
--- wp-admin/includes/meta-boxes.php	(revision 22962)
+++ wp-admin/includes/meta-boxes.php	(working copy)
@@ -1001,119 +1001,6 @@
  * @since 2.9.0
  */
 function post_thumbnail_meta_box( $post ) {
-	global $_wp_additional_image_sizes;
-
-	?><script type="text/javascript">
-	jQuery( function($) {
-		var $element     = $('#select-featured-image'),
-			$thumbnailId = $element.find('input[name="thumbnail_id"]'),
-			title        = '<?php _e( "Choose a Featured Image" ); ?>',
-			update       = '<?php _e( "Update Featured Image" ); ?>',
-			Attachment   = wp.media.model.Attachment,
-			frame, setFeaturedImage;
-
-		setFeaturedImage = function( thumbnailId ) {
-			var selection;
-
-			$element.find('img').remove();
-			$element.toggleClass( 'has-featured-image', -1 != thumbnailId );
-			$thumbnailId.val( thumbnailId );
-
-			if ( frame ) {
-				selection = frame.state('library').get('selection');
-
-				if ( -1 === thumbnailId )
-					selection.clear();
-				else
-					selection.add( Attachment.get( thumbnailId ) );
-			}
-		};
-
-		$element.on( 'click', '.choose, img', function( event ) {
-			var options, thumbnailId, attachment;
-
-			event.preventDefault();
-
-			if ( frame ) {
-				frame.open();
-				return;
-			}
-
-			options = {
-				title:   title,
-				library: {
-					type: 'image'
-				}
-			};
-
-			thumbnailId = $thumbnailId.val();
-			if ( '' !== thumbnailId && -1 !== thumbnailId ) {
-				attachment = Attachment.get( thumbnailId );
-				attachment.fetch();
-				options.selection = [ attachment ];
-			}
-
-			frame = wp.media( options );
-
-			frame.state('library').set( 'filterable', 'uploaded' );
-
-			frame.toolbar.on( 'activate:select', function() {
-				frame.toolbar.view().set({
-					select: {
-						style: 'primary',
-						text:  update,
-
-						click: function() {
-							var selection = frame.state().get('selection'),
-								model = selection.first(),
-								sizes = model.get('sizes'),
-								size;
-
-							setFeaturedImage( model.id );
-
-							// @todo: might need a size hierarchy equivalent.
-							if ( sizes )
-								size = sizes['post-thumbnail'] || sizes.medium;
-
-							// @todo: Need a better way of accessing full size
-							// data besides just calling toJSON().
-							size = size || model.toJSON();
-
-							frame.close();
-
-							$( '<img />', {
-								src:    size.url,
-								width:  size.width
-							}).prependTo( $element );
-						}
-					}
-				});
-			});
-
-			frame.toolbar.mode('select');
-		});
-
-		$element.on( 'click', '.remove', function( event ) {
-			event.preventDefault();
-			setFeaturedImage( -1 );
-		});
-	});
-	</script>
-
-	<?php
-	$thumbnail_id   = get_post_meta( $post->ID, '_thumbnail_id', true );
-	$thumbnail_size = isset( $_wp_additional_image_sizes['post-thumbnail'] ) ? 'post-thumbnail' : 'medium';
-	$thumbnail_html = wp_get_attachment_image( $thumbnail_id, $thumbnail_size );
-
-	$classes = empty( $thumbnail_id ) ? '' : 'has-featured-image';
-
-	?><div id="select-featured-image"
-		class="<?php echo esc_attr( $classes ); ?>"
-		data-post-id="<?php echo esc_attr( $post->ID ); ?>">
-		<?php echo $thumbnail_html; ?>
-		<input type="hidden" name="thumbnail_id" value="<?php echo esc_attr( $thumbnail_id ); ?>" />
-		<a href="#" class="choose button-secondary"><?php _e( 'Choose a Featured Image' ); ?></a>
-		<a href="#" class="remove"><?php _e( 'Remove Featured Image' ); ?></a>
-	</div>
-	<?php
+	$thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true );
+	echo _wp_post_thumbnail_html( $thumbnail_id, $post->ID );
 }
\ No newline at end of file
