Index: src/wp-includes/media.php
===================================================================
--- src/wp-includes/media.php	(revision 35853)
+++ src/wp-includes/media.php	(working copy)
@@ -612,10 +612,12 @@
  *
  * @since 2.5.0
  *
- * @param int          $post_id Attachment ID.
- * @param array|string $size    Optional. Image size. Accepts any valid image size, or an array
- *                              of width and height values in pixels (in that order).
- *                              Default 'thumbnail'.
+ * @param int          $post_id     Attachment ID.
+ * @param array|string $size        Optional. Image size. Accepts any valid image size, or an array
+ *                                  of width and height values in pixels (in that order).
+ *                                  Default 'thumbnail'.
+ * @param bool         $force_thumb Optional. Whether to force the thumbnail image to be used if is
+ *                                  larger than the requested size. Default true.
  * @return false|array $data {
  *     Array of file relative path, width, and height on success. Additionally includes absolute
  *     path and URL if registered size is passed to $size parameter. False on failure.
@@ -629,7 +631,7 @@
  *                          parameter.
  * }
  */
-function image_get_intermediate_size( $post_id, $size = 'thumbnail' ) {
+function image_get_intermediate_size( $post_id, $size = 'thumbnail', $force_thumb = true ) {
 	if ( !is_array( $imagedata = wp_get_attachment_metadata( $post_id ) ) )
 		return false;
 
@@ -661,7 +663,7 @@
 				// First, we calculate what size the original image would be if constrained to a box the size of the current image in the loop
 				$maybe_cropped = image_resize_dimensions($imagedata['width'], $imagedata['height'], $data['width'], $data['height'], false );
 				// If the size doesn't match within one pixel, then it is of a different aspect ratio, so we skip it, unless it's the thumbnail size
-				if ( 'thumbnail' != $_size &&
+				if ( ( 'thumbnail' != $_size || ! $force_thumb ) &&
 				  ( ! $maybe_cropped
 				    || ( $maybe_cropped[4] != $data['width'] && $maybe_cropped[4] + 1 != $data['width'] )
 				    || ( $maybe_cropped[5] != $data['height'] && $maybe_cropped[5] + 1 != $data['height'] )
