Index: src/wp-admin/includes/post.php
===================================================================
--- src/wp-admin/includes/post.php	(revision 28739)
+++ src/wp-admin/includes/post.php	(working copy)
@@ -1264,10 +1264,23 @@
 	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' );
+
+		$size = isset( $_wp_additional_image_sizes['post-thumbnail'] ) ? 'post-thumbnail' : array( $content_width, $content_width );
+
+		/**
+		 * Filter the admin post thumbnail size for the Featured Image meta box.
+		 *
+		 * @since 4.0.0
+		 *
+		 * @param string|array $size         Post thumbnail size. If the 'post-thumbnail' image size
+		 *                                   is set, `$size` equals an array with `$content_width`
+		 *                                   as the height and width values. Otherwise, 'post-thumbnail'.
+		 * @param int          $thumbnail_id Thumbnail ID.
+		 */
+		$size = apply_filters( 'admin_post_thumbnail_size', $size, $thumbnail_id );
+
+		$thumbnail_html = wp_get_attachment_image( $thumbnail_id, $size );
+
 		if ( !empty( $thumbnail_html ) ) {
 			$ajax_nonce = wp_create_nonce( 'set_post_thumbnail-' . $post->ID );
 			$content = sprintf( $set_thumbnail_link, $upload_iframe_src, $thumbnail_html );
