diff --git a/coders/psd.c b/coders/psd.c
index 7227238..f3d00c5 100644
--- a/coders/psd.c
+++ b/coders/psd.c
@@ -1670,7 +1670,7 @@
     (void) WriteBlobMSBShort(image,0);
   if (tmp_image->depth > 8)
     tmp_image->depth=16;
-  monochrome=IsMonochromeImage(image,&image->exception);
+  monochrome=IsMonochromeImage(image,&image->exception) && (image->depth == 1);
   packet_size=tmp_image->depth > 8UL ? 2UL : 1UL;
   quantum_info=AcquireQuantumInfo(image_info,image);
   for (y=0; y < (ssize_t) tmp_image->rows; y++)
@@ -2066,7 +2066,8 @@
       /*
         Write depth & mode.
       */
-      monochrome=IsMonochromeImage(image,&image->exception);
+      monochrome=IsMonochromeImage(image,&image->exception) &&
+        (image->depth == 1);
       (void) WriteBlobMSBShort(image,(unsigned short)
         (monochrome != MagickFalse ? 1 : image->depth > 8 ? 16 : 8));
       (void) WriteBlobMSBShort(image,monochrome != MagickFalse ?