Index: wp-includes/media.php
===================================================================
--- wp-includes/media.php	(revision 25154)
+++ wp-includes/media.php	(working copy)
@@ -1705,17 +1705,21 @@
 					'url'         => $downsize[0],
 					'orientation' => $downsize[2] > $downsize[1] ? 'portrait' : 'landscape',
 				);
-			} elseif ( isset( $meta['sizes'][ $size ] ) ) {
+			} else {
 				if ( ! isset( $base_url ) )
 					$base_url = str_replace( wp_basename( $attachment_url ), '', $attachment_url );
 
-				// Nothing from the filter, so consult image metadata if we have it.
-				$size_meta = $meta['sizes'][ $size ];
+				// If image metadata for this size exists, use it, otherwise use original.
+				$size_meta = ( isset( $meta['sizes'][ $size ] ) ) ? $meta['sizes'][ $size ] : $meta;
 
 				// We have the actual image size, but might need to further constrain it if content_width is narrower.
 				// Thumbnail, medium, and full sizes are also checked against the site's height/width options.
 				list( $width, $height ) = image_constrain_size_for_editor( $size_meta['width'], $size_meta['height'], $size, 'edit' );
 
+				// If dimensions have not changed from the original, skip this image size.
+				if ( $width == $meta['width'] && $height == $meta['height'] )
+					continue;
+
 				$sizes[ $size ] = array(
 					'height'      => $height,
 					'width'       => $width,
