Index: wp-admin/includes/post.php
===================================================================
--- wp-admin/includes/post.php	(revision 13111)
+++ wp-admin/includes/post.php	(working copy)
@@ -1103,21 +1103,25 @@
  * @return string html
  */
 function _wp_post_thumbnail_html( $thumbnail_id = NULL ) {
-	global $content_width, $_wp_additional_image_sizes;
+	global $_wp_additional_image_sizes;
+
 	$content = '<p class="hide-if-no-js"><a href="#" id="set-post-thumbnail" onclick="jQuery(\'#add_image\').click();return false;">' . esc_html__( 'Set thumbnail' ) . '</a></p>';
 
 	if ( $thumbnail_id && get_post( $thumbnail_id ) ) {
-		$old_content_width = $content_width;
-		$content_width = 266;
 		if ( !isset( $_wp_additional_image_sizes['post-thumbnail'] ) )
 			$thumbnail_html = wp_get_attachment_image( $thumbnail_id, array( $content_width, $content_width ) );
 		else
 			$thumbnail_html = wp_get_attachment_image( $thumbnail_id, 'post-thumbnail' );
 		if ( !empty( $thumbnail_html ) ) {
+			// Downsize the thumbnail HTML to fit in the meta box
+			if ( preg_match( '#width="([0-9]+)"#i', $thumbnail_html, $width ) && $width[1] > 266 && preg_match( '#height="([0-9]+)"#i', $thumbnail_html, $height ) ) {
+				$newdims = wp_constrain_dimensions( $width[1], $height[1], 266 );
+				$thumbnail_html = str_replace( array( $width[0], $height[0] ), array( "width=\"{$newdims[0]}\"", "height=\"{$newdims[1]}\"" ), $thumbnail_html );
+			}
+
 			$content = '<a href="#" id="set-post-thumbnail" onclick="jQuery(\'#add_image\').click();return false;">' . $thumbnail_html . '</a>';
 			$content .= '<p class="hide-if-no-js"><a href="#" id="remove-post-thumbnail" onclick="WPRemoveThumbnail();return false;">' . esc_html__( 'Remove thumbnail' ) . '</a></p>';
 		}
-		$content_width = $old_content_width;
 	}
 
 	return apply_filters( 'admin_post_thumbnail_html', $content );
