Index: wp-includes/media.php
===================================================================
--- wp-includes/media.php	(revision 19998)
+++ wp-includes/media.php	(working copy)
@@ -455,7 +455,9 @@
 			return new WP_Error('resize_path_invalid', __( 'Resize path invalid' ));
 	} else {
 		// all other formats are converted to jpg
-		$destfilename = "{$dir}/{$name}-{$suffix}.jpg";
+		if ( !in_array( $ext, array( 'jpg', 'jpeg' ) ) )
+			$ext = 'jpg';
+		$destfilename = "{$dir}/{$name}-{$suffix}.$ext";
 		if ( !imagejpeg( $newimage, $destfilename, apply_filters( 'jpeg_quality', $jpeg_quality, 'image_resize' ) ) )
 			return new WP_Error('resize_path_invalid', __( 'Resize path invalid' ));
 	}
