diff --git a/modules/system/image.gd.inc b/modules/system/image.gd.inc
index 39f86dc..1da2bc3 100644
--- a/modules/system/image.gd.inc
+++ b/modules/system/image.gd.inc
@@ -305,7 +305,7 @@ function image_gd_create_tmp(stdClass $image, $width, $height) {
     // Grab transparent color index from image resource.
     $transparent = imagecolortransparent($image->resource);
 
-    if ($transparent >= 0) {
+    if ($transparent >= 0 && $transparent < imagecolorstotal($image->resource)) {
       // The original must have a transparent color, allocate to the new image.
       $transparent_color = imagecolorsforindex($image->resource, $transparent);
       $transparent = imagecolorallocate($res, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue']);
