diff --git a/magick/histogram.c b/magick/histogram.c
index ff62b82..aa16c01 100644
--- a/magick/histogram.c
+++ b/magick/histogram.c
@@ -1161,6 +1161,7 @@
     HistogramCompare);
   GetMagickPixelPacket(image,&pixel);
   p=histogram;
+  status=MagickTrue;
   for (i=0; i < (ssize_t) number_colors; i++)
   {
     SetMagickPixelPacket(image,&p->pixel,&p->index,&pixel);
@@ -1199,6 +1200,8 @@
   }
   (void) fflush(file);
   histogram=(ColorPacket *) RelinquishMagickMemory(histogram);
+  if (status == MagickFalse)
+    return(0);
   return(number_colors);
 }
 
@@ -1260,6 +1263,7 @@
       register PixelPacket
         *restrict q;
 
+      status=MagickTrue;
       p=node_info->list;
       for (i=0; i < (ssize_t) node_info->number_unique; i++)
       {
@@ -1287,6 +1291,8 @@
             status=MagickFalse;
         }
       cube_info->progress++;
+      if (status == MagickFalse)
+        return;
     }
 }