diff --git a/coders/pnm.c b/coders/pnm.c
index 6a0290f..f84458c 100644
--- a/coders/pnm.c
+++ b/coders/pnm.c
@@ -441,8 +441,8 @@
           for (x=0; x < (ssize_t) image->columns; x++)
           {
             q->red=(Quantum) (PNMInteger(image,2) == 0 ? QuantumRange : 0);
-            q->green=q->red;
-            q->blue=q->red;
+            SetGreenPixelComponent(q,GetRedPixelComponent(q));
+            SetBluePixelComponent(q,GetRedPixelComponent(q));
             q++;
           }
           if (SyncAuthenticPixels(image,exception) == MagickFalse)
@@ -496,8 +496,8 @@
             q->red=(Quantum) intensity;
             if (scale != (Quantum *) NULL)
               q->red=scale[ConstrainPixel(image,(ssize_t) intensity,max_value)];
-            q->green=q->red;
-            q->blue=q->red;
+            SetGreenPixelComponent(q,GetRedPixelComponent(q));
+            SetBluePixelComponent(q,GetRedPixelComponent(q));
             q++;
           }
           if (SyncAuthenticPixels(image,exception) == MagickFalse)
@@ -730,8 +730,8 @@
                 {
                   p=PushCharPixel(p,&pixel);
                   SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
-                  q->green=q->red;
-                  q->blue=q->red;
+                  SetGreenPixelComponent(q,GetRedPixelComponent(q));
+                  SetBluePixelComponent(q,GetRedPixelComponent(q));
                   q++;
                 }
               }
@@ -744,8 +744,8 @@
                 {
                   p=PushShortPixel(MSBEndian,p,&pixel);
                   SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
-                  q->green=q->red;
-                  q->blue=q->red;
+                  SetGreenPixelComponent(q,GetRedPixelComponent(q));
+                  SetBluePixelComponent(q,GetRedPixelComponent(q));
                   q++;
                 }
               }
@@ -830,9 +830,9 @@
           if (image->depth == 8)
             for (x=0; x < (ssize_t) image->columns; x++)
             {
-              q->red=ScaleCharToQuantum(*p++);
-              q->green=ScaleCharToQuantum(*p++);
-              q->blue=ScaleCharToQuantum(*p++);
+              SetRedPixelComponent(q,ScaleCharToQuantum(*p++));
+              SetGreenPixelComponent(q,ScaleCharToQuantum(*p++));
+              SetBluePixelComponent(q,ScaleCharToQuantum(*p++));
               q->opacity=OpaqueOpacity;
               q++;
             }
@@ -1026,8 +1026,8 @@
                     {
                       p=PushCharPixel(p,&pixel);
                       SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
-                      q->green=q->red;
-                      q->blue=q->red;
+                      SetGreenPixelComponent(q,GetRedPixelComponent(q));
+                      SetBluePixelComponent(q,GetRedPixelComponent(q));
                       SetOpacityPixelComponent(q,OpaqueOpacity);
                       if (image->matte != MagickFalse)
                         {
@@ -1047,8 +1047,8 @@
                     {
                       p=PushShortPixel(MSBEndian,p,&pixel);
                       SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
-                      q->green=q->red;
-                      q->blue=q->red;
+                      SetGreenPixelComponent(q,GetRedPixelComponent(q));
+                      SetBluePixelComponent(q,GetRedPixelComponent(q));
                       SetOpacityPixelComponent(q,OpaqueOpacity);
                       if (image->matte != MagickFalse)
                         {