Index: wp-includes/media.php
===================================================================
--- media.php	(revision 11404)
+++ media.php	(working copy)
@@ -352,6 +352,10 @@
 
 	imagecopyresampled( $newimage, $image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
 
+	// convert from full colors to index colors, like original PNG.
+	if( IMAGETYPE_PNG == $orig_type && !imageistruecolor( $image ) )
+		imagetruecolortopalette( $newimage, false, imagecolorstotal( $image ) );
+
 	// we don't need the original in memory anymore
 	imagedestroy( $image );
 

