diff --git a/includes/image.inc b/includes/image.inc
index 37f377c1ab9858c57a4aa8f175211934a79aff10..93622f509805b939a6b2e6ac3410555f72276df6 100644
--- a/includes/image.inc
+++ b/includes/image.inc
@@ -223,6 +223,13 @@ function image_gd_resize($source, $destination, $width, $height) {
   }
 
   $res = imageCreateTrueColor($width, $height);
+  if ($info['extension'] == 'png') {
+    $transparency = imagecolorallocatealpha($res, 0, 0, 0, 127);
+    imagealphablending($res, FALSE);
+    imagefilledrectangle($res, 0, 0, $width, $height, $transparency);
+    imagealphablending($res, TRUE);
+    imagesavealpha($res, TRUE);
+  }
   imageCopyResampled($res, $im, 0, 0, 0, 0, $width, $height, $info['width'], $info['height']);
   $result = image_gd_close($res, $destination, $info['extension']);