Index: wp-includes/media.php
===================================================================
--- wp-includes/media.php	(revision 17105)
+++ wp-includes/media.php	(working copy)
@@ -419,7 +419,18 @@
 		return new WP_Error( 'error_getting_dimensions', __('Could not calculate resized image dimensions') );
 	list($dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) = $dims;
 
-	$newimage = wp_imagecreatetruecolor( $dst_w, $dst_h );
+	if ( IMAGETYPE_GIF == $orig_type && function_exists('imagecolortransparent') ) {
+		$newimage = imagecreatetruecolor( $dst_w, $dst_h );
+		$transparent_id = imagecolortransparent($image);
+		if ( $transparent_id >= 0 ) {
+			$transparent_color = imagecolorsforindex($image, $transparent_id);
+			$transparent_id = imagecolorallocate($newimage, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue']);
+			imagefill($newimage, 0, 0, $transparent_id);
+			imagecolortransparent($newimage, $transparent_id);
+		}
+	} else {
+		$newimage = wp_imagecreatetruecolor( $dst_w, $dst_h );
+	}
 
 	imagecopyresampled( $newimage, $image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
 
