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 ?