Index: wp-admin/includes/image-edit.php
===================================================================
--- wp-admin/includes/image-edit.php	(revision 21602)
+++ wp-admin/includes/image-edit.php	(working copy)
@@ -223,6 +223,8 @@
 
 	switch ( $mime_type ) {
 		case 'image/jpeg':
+			if ( function_exists( 'imageinterlace' ) )
+				imageinterlace( $image, 1 );
 			return imagejpeg( $image, $filename, apply_filters( 'jpeg_quality', 90, 'edit_image' ) );
 		case 'image/png':
 			return imagepng($image, $filename);
Index: wp-admin/includes/image.php
===================================================================
--- wp-admin/includes/image.php	(revision 21602)
+++ wp-admin/includes/image.php	(working copy)
@@ -92,12 +92,16 @@
 
 	$dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), basename( $dst_file ) );
 
-	if ( 'image/png' == $image_type && imagepng( $dst, $dst_file ) )
+	if ( 'image/png' == $image_type && imagepng( $dst, $dst_file ) ) {
 		return $dst_file;
-	elseif ( imagejpeg( $dst, $dst_file, apply_filters( 'jpeg_quality', 90, 'wp_crop_image' ) ) )
-		return $dst_file;
-	else
-		return false;
+	} else {
+		if ( function_exists( 'imageinterlace' ) )
+			imageinterlace( $dst, 1 );
+		if ( imagejpeg( $dst, $dst_file, apply_filters( 'jpeg_quality', 90, 'wp_crop_image' ) ) )
+			return $dst_file;
+	}
+
+	return false;
 }
 
 /**
Index: wp-includes/media.php
===================================================================
--- wp-includes/media.php	(revision 21602)
+++ wp-includes/media.php	(working copy)
@@ -464,6 +464,10 @@
 		// all other formats are converted to jpg
 		if ( 'jpg' != $ext && 'jpeg' != $ext )
 			$destfilename = "{$dir}/{$name}-{$suffix}.jpg";
+
+		if ( function_exists( 'imageinterlace' ) )
+			imageinterlace( $newimage, 1 );
+
 		if ( !imagejpeg( $newimage, $destfilename, apply_filters( 'jpeg_quality', $jpeg_quality, 'image_resize' ) ) )
 			return new WP_Error('resize_path_invalid', __( 'Resize path invalid' ));
 	}
