Index: wp-includes/js/media-editor.js
===================================================================
--- wp-includes/js/media-editor.js	(revision 22984)
+++ wp-includes/js/media-editor.js	(working copy)
@@ -163,7 +163,7 @@
 		return {
 			defaults: {
 				order:      'ASC',
-				id:         wp.media.view.settings.postId,
+				id:         wp.media.view.settings.post.id,
 				itemtag:    'dl',
 				icontag:    'dt',
 				captiontag: 'dd',
@@ -430,18 +430,17 @@
 
 			workflow.state('featured-image').on( 'select', function() {
 				var settings = wp.media.view.settings,
-					featuredImage = settings.featuredImage,
 					selection = this.get('selection').single();
 
-				if ( ! featuredImage )
+				if ( ! settings.post.featuredImageId )
 					return;
 
-				featuredImage.id = selection ? selection.id : -1;
+				settings.post.featuredImageId = selection ? selection.id : -1;
 				wp.media.post( 'set-post-thumbnail', {
 					json:         true,
-					post_id:      settings.postId,
-					thumbnail_id: featuredImage.id,
-					_wpnonce:     featuredImage.nonce
+					post_id:      settings.post.id,
+					thumbnail_id: settings.post.featuredImageId,
+					_wpnonce:     settings.post.nonce
 				}).done( function( html ) {
 					$( '.inside', '#postimagediv' ).html( html );
 				});
@@ -517,7 +516,7 @@
 					nonce:      wp.media.view.settings.nonce.sendToEditor,
 					attachment: options,
 					html:       html,
-					post_id:    wp.media.view.settings.postId
+					post_id:    wp.media.view.settings.post.id
 				}).done( function( resp ) {
 					wp.media.editor.insert( resp );
 				});
@@ -529,7 +528,7 @@
 					src:     embed.linkUrl,
 					title:   embed.title,
 					html:    wp.media.string.link( embed ),
-					post_id: wp.media.view.settings.postId
+					post_id: wp.media.view.settings.post.id
 				}).done( function( resp ) {
 					wp.media.editor.insert( resp );
 				});
@@ -605,7 +604,7 @@
 
 			// Update the featured image id when the 'remove' link is clicked.
 			}).on( 'click', '#remove-post-thumbnail', function() {
-				wp.media.view.settings.featuredImage.id = -1;
+				wp.media.view.settings.post.featuredImageId = -1;
 			});
 		}
 	};
Index: wp-includes/js/plupload/wp-plupload.js
===================================================================
--- wp-includes/js/plupload/wp-plupload.js	(revision 22984)
+++ wp-includes/js/plupload/wp-plupload.js	(working copy)
@@ -157,7 +157,7 @@
 					date:      new Date(),
 					filename:  file.name,
 					menuOrder: 0,
-					uploadedTo: wp.media.model.settings.postId
+					uploadedTo: wp.media.model.settings.post.id
 				}, _.pick( file, 'loaded', 'size', 'percent' ) );
 
 				// Handle early mime type scanning for images.
Index: wp-includes/js/media-views.js
===================================================================
--- wp-includes/js/media-views.js	(revision 22985)
+++ wp-includes/js/media-views.js	(working copy)
@@ -12,9 +12,8 @@
 	media.view.settings = l10n.settings || {};
 	delete l10n.settings;
 
-	// Copy the `postId` setting over to the model settings.
-	media.model.settings.postId = media.view.settings.postId;
-	media.model.settings.updatePostNonce = media.view.settings.nonce.updatePost;
+	// Copy the `post` setting over to the model settings.
+	media.model.settings.post = media.view.settings.post;
 
 	// Check if the browser supports CSS 3.0 transitions
 	$.support.transition = (function(){
@@ -572,7 +571,7 @@
 
 		activate: function() {
 			var selection = this.get('selection'),
-				id = media.view.settings.featuredImage.id,
+				id = media.view.settings.post.featuredImageId,
 				attachment;
 
 			if ( '' !== id && -1 !== id ) {
@@ -1448,7 +1447,7 @@
 			]);
 
 
-			if ( media.view.settings.featuredImage ) {
+			if ( media.view.settings.post.featuredImageId ) {
 				this.states.add( new media.controller.FeaturedImage({
 					controller: this,
 					menu:       'main'
@@ -1500,7 +1499,7 @@
 				}
 			});
 
-			if ( media.view.settings.featuredImage ) {
+			if ( media.view.settings.post.featuredImageId ) {
 				this.menu.view().set( 'featured-image', {
 					text: l10n.featuredImageTitle,
 					priority: 100
@@ -1827,7 +1826,7 @@
 		},
 
 		ready: function() {
-			var postId = media.view.settings.postId,
+			var postId = media.view.settings.post.id,
 				dropzone;
 
 			// If the uploader already exists, bail.
@@ -1878,7 +1877,7 @@
 				this.options.$browser = this.controller.uploader.$browser;
 
 			if ( _.isUndefined( this.options.postId ) )
-				this.options.postId = media.view.settings.postId;
+				this.options.postId = media.view.settings.post.id;
 
 			this.views.set( '.upload-inline-status', new media.view.UploaderStatus({
 				controller: this.controller
@@ -3032,7 +3031,7 @@
 			uploaded: {
 				text:  l10n.uploadedToThisPost,
 				props: {
-					uploadedTo: media.view.settings.postId,
+					uploadedTo: media.view.settings.post.id,
 					orderby: 'menuOrder',
 					order:   'ASC'
 				},
@@ -3072,7 +3071,7 @@
 				text:  l10n.uploadedToThisPost,
 				props: {
 					type:    null,
-					uploadedTo: media.view.settings.postId,
+					uploadedTo: media.view.settings.post.id,
 					orderby: 'menuOrder',
 					order:   'ASC'
 				},
Index: wp-includes/js/media-models.js
===================================================================
--- wp-includes/js/media-models.js	(revision 22984)
+++ wp-includes/js/media-models.js	(working copy)
@@ -244,7 +244,7 @@
 					action:  'save-attachment',
 					id:      this.id,
 					nonce:   this.get('nonces').update,
-					post_id: media.model.settings.postId
+					post_id: media.model.settings.post.id
 				});
 
 				// Record the values of the changed attributes.
@@ -289,7 +289,7 @@
 			return media.post( 'save-attachment-compat', _.defaults({
 				id:      this.id,
 				nonce:   this.get('nonces').update,
-				post_id: media.model.settings.postId
+				post_id: media.model.settings.post.id
 			}, data ) ).done( function( resp, status, xhr ) {
 				model.set( model.parse( resp, xhr ), options );
 			});
@@ -548,8 +548,8 @@
 				return;
 
 			return media.post( 'save-attachment-order', {
-				nonce:       media.model.settings.updatePostNonce,
-				post_id:     media.model.settings.postId,
+				nonce:       media.model.settings.post.nonce,
+				post_id:     media.model.settings.post.id,
 				attachments: attachments
 			});
 		}
@@ -705,7 +705,7 @@
 				options.context = this;
 				options.data = _.extend( options.data || {}, {
 					action:  'query-attachments',
-					post_id: media.model.settings.postId
+					post_id: media.model.settings.post.id
 				});
 
 				// Clone the args so manipulation is non-destructive.
Index: wp-includes/media.php
===================================================================
--- wp-includes/media.php	(revision 22984)
+++ wp-includes/media.php	(working copy)
@@ -1426,23 +1426,22 @@
 		'nonce'     => array(
 			'sendToEditor' => wp_create_nonce( 'media-send-to-editor' ),
 		),
-		'postId'    => 0,
+		'post'    => array(
+			'id' => 0,
+		),
 	);
 
 	$post = null;
 	if ( isset( $args['post'] ) ) {
 		$post = get_post( $args['post'] );
-		$settings['postId'] = $post->ID;
-		$settings['nonce']['updatePost'] = wp_create_nonce( 'update-post_' . $post->ID );
+		$settings['post'] = array(
+			'id' => $post->ID,
+			'nonce' => wp_create_nonce( 'update-post_' . $post->ID ),
+		);
 
 		if ( current_theme_supports( 'post-thumbnails', $post->post_type ) && post_type_supports( $post->post_type, 'thumbnail' ) ) {
-
-			$featuredImageId = get_post_meta( $post->ID, '_thumbnail_id', true );
-
-			$settings['featuredImage'] = array(
-				'id'    => $featuredImageId ? $featuredImageId : -1,
-				'nonce' => wp_create_nonce( 'set_post_thumbnail-' . $post->ID ),
-			);
+			$featured_image_id = get_post_meta( $post->ID, '_thumbnail_id', true );
+			$settings['post']['featuredImageId'] = $featured_image_id ? $featured_image_id : -1;
 		}
 	}
 
Index: wp-includes/script-loader.php
===================================================================
--- wp-includes/script-loader.php	(revision 22984)
+++ wp-includes/script-loader.php	(working copy)
@@ -323,7 +323,7 @@
 	did_action( 'init' ) && $scripts->localize( 'media-models', '_wpMediaModelsL10n', array(
 		'settings' => array(
 			'ajaxurl' => admin_url( 'admin-ajax.php', 'relative' ),
-			'postId'  => 0,
+			'post' => array( 'id' => 0 ),
 		),
 	) );
 
Index: wp-admin/includes/ajax-actions.php
===================================================================
--- wp-admin/includes/ajax-actions.php	(revision 22984)
+++ wp-admin/includes/ajax-actions.php	(working copy)
@@ -1674,7 +1674,7 @@
 }
 
 function wp_ajax_set_post_thumbnail() {
-	$json = ! empty( $_REQUEST['json'] );
+	$json = ! empty( $_REQUEST['json'] ); // New-style request
 
 	$post_ID = intval( $_POST['post_id'] );
 	if ( !current_user_can( 'edit_post', $post_ID ) ) {
@@ -1682,7 +1682,10 @@
 	}
 	$thumbnail_id = intval( $_POST['thumbnail_id'] );
 
-	check_ajax_referer( "set_post_thumbnail-$post_ID" );
+	if ( $json )
+		check_ajax_referer( "update-post_$post_ID" );
+	else
+		check_ajax_referer( "set_post_thumbnail-$post_ID" );
 
 	if ( $thumbnail_id == '-1' ) {
 		if ( delete_post_thumbnail( $post_ID ) ) {
Index: wp-admin/includes/dashboard.php
===================================================================
--- wp-admin/includes/dashboard.php	(revision 22984)
+++ wp-admin/includes/dashboard.php	(working copy)
@@ -505,6 +505,16 @@
 	}
 
 	$post_ID = (int) $post->ID;
+
+	$media_settings = array(
+		'id' => $post->ID,
+		'nonce' => wp_create_nonce( 'update-post_' . $post->ID ),
+	);
+
+	if ( current_theme_supports( 'post-thumbnails', $post->post_type ) && post_type_supports( $post->post_type, 'thumbnail' ) ) {
+		$featured_image_id = get_post_meta( $post->ID, '_thumbnail_id', true );
+		$media_settings['featuredImageId'] = $featured_image_id ? $featured_image_id : -1;
+	}
 ?>
 
 	<form name="post" action="<?php echo esc_url( admin_url( 'post.php' ) ); ?>" method="post" id="quick-press">
@@ -524,7 +534,15 @@
 			<textarea name="content" id="content" class="mceEditor" rows="3" cols="15"><?php echo esc_textarea( $post->post_content ); ?></textarea>
 		</div>
 
-		<script type="text/javascript">edCanvas = document.getElementById('content');edInsertContent = null;</script>
+		<script type="text/javascript">
+		edCanvas = document.getElementById('content');
+		edInsertContent = null;
+		<?php if ( $_POST ) : ?>
+		wp.media.editor.remove('content');
+		wp.media.view.settings.post = <?php echo json_encode( $media_settings ); // big juicy hack. ?>;
+		wp.media.editor.add('content');
+		<?php endif; ?>
+		</script>
 
 		<div class="input-text-wrap" id="tags-input-wrap">
 			<label class="screen-reader-text prompt" for="tags-input" id="tags-input-prompt-text"><?php _e( 'Tags (separate with commas)' ); ?></label>
