diff --git a/coders/jpeg.c b/coders/jpeg.c
index 006dc3e..408b7bd 100644
--- a/coders/jpeg.c
+++ b/coders/jpeg.c
@@ -1201,7 +1201,7 @@
                 (GETJSAMPLE(*p++) << 4));
               q->blue=ScaleShortToQuantum((unsigned char)
                 (GETJSAMPLE(*p++) << 4));
-              q->opacity=OpaqueOpacity;
+              SetOpacitySample(q,OpaqueOpacity);
               q++;
             }
           else
@@ -1213,7 +1213,7 @@
                 (unsigned char) (GETJSAMPLE(*p++) << 4));
               q->blue=(Quantum) QuantumRange-ScaleShortToQuantum((unsigned char)
                 (GETJSAMPLE(*p++) << 4));
-              q->opacity=OpaqueOpacity;
+              SetOpacitySample(q,OpaqueOpacity);
               indexes[x]=(IndexPacket) QuantumRange-ScaleShortToQuantum(
                 (unsigned char) (GETJSAMPLE(*p++) << 4));
               q++;
@@ -1235,7 +1235,7 @@
             q->red=ScaleCharToQuantum((unsigned char) GETJSAMPLE(*p++));
             q->green=ScaleCharToQuantum((unsigned char) GETJSAMPLE(*p++));
             q->blue=ScaleCharToQuantum((unsigned char) GETJSAMPLE(*p++));
-            q->opacity=OpaqueOpacity;
+            SetOpacitySample(q,OpaqueOpacity);
             q++;
           }
         else
@@ -1247,7 +1247,7 @@
               GETJSAMPLE(*p++));
             q->blue=(Quantum) QuantumRange-ScaleCharToQuantum((unsigned char)
               GETJSAMPLE(*p++));
-            q->opacity=OpaqueOpacity;
+            SetOpacitySample(q,OpaqueOpacity);
             indexes[x]=(IndexPacket) QuantumRange-ScaleCharToQuantum(
               (unsigned char) GETJSAMPLE(*p++));
             q++;
@@ -2178,9 +2178,9 @@
             q=jpeg_pixels;
             for (x=0; x < (long) image->columns; x++)
             {
-              *q++=(JSAMPLE) (ScaleQuantumToShort(p->red) >> 4);
-              *q++=(JSAMPLE) (ScaleQuantumToShort(p->green) >> 4);
-              *q++=(JSAMPLE) (ScaleQuantumToShort(p->blue) >> 4);
+              *q++=(JSAMPLE) (ScaleQuantumToShort(GetRedSample(p)) >> 4);
+              *q++=(JSAMPLE) (ScaleQuantumToShort(GetGreenSample(p)) >> 4);
+              *q++=(JSAMPLE) (ScaleQuantumToShort(GetBlueSample(p)) >> 4);
               p++;
             }
             (void) jpeg_write_scanlines(&jpeg_info,scanline,1);
@@ -2210,9 +2210,9 @@
               /*
                 Convert DirectClass packets to contiguous CMYK scanlines.
               */
-              *q++=(JSAMPLE) (4095-(ScaleQuantumToShort(p->red) >> 4));
-              *q++=(JSAMPLE) (4095-(ScaleQuantumToShort(p->green) >> 4));
-              *q++=(JSAMPLE) (4095-(ScaleQuantumToShort(p->blue) >> 4));
+              *q++=(JSAMPLE) (4095-(ScaleQuantumToShort(GetRedSample(p)) >> 4));
+              *q++=(JSAMPLE) (4095-(ScaleQuantumToShort(GetGreenSample(p)) >> 4));
+              *q++=(JSAMPLE) (4095-(ScaleQuantumToShort(GetBlueSample(p)) >> 4));
               *q++=(JSAMPLE) (4095-(ScaleQuantumToShort(indexes[x]) >> 4));
               p++;
             }
@@ -2262,9 +2262,9 @@
           q=jpeg_pixels;
           for (x=0; x < (long) image->columns; x++)
           {
-            *q++=(JSAMPLE) ScaleQuantumToChar(p->red);
-            *q++=(JSAMPLE) ScaleQuantumToChar(p->green);
-            *q++=(JSAMPLE) ScaleQuantumToChar(p->blue);
+            *q++=(JSAMPLE) ScaleQuantumToChar(GetRedSample(p));
+            *q++=(JSAMPLE) ScaleQuantumToChar(GetGreenSample(p));
+            *q++=(JSAMPLE) ScaleQuantumToChar(GetBlueSample(p));
             p++;
           }
           (void) jpeg_write_scanlines(&jpeg_info,scanline,1);
@@ -2294,11 +2294,11 @@
               Convert DirectClass packets to contiguous CMYK scanlines.
             */
             *q++=(JSAMPLE) (ScaleQuantumToChar((Quantum) (QuantumRange-
-              p->red)));
+              GetRedSample(p))));
             *q++=(JSAMPLE) (ScaleQuantumToChar((Quantum) (QuantumRange-
-              p->green)));
+              GetGreenSample(p))));
             *q++=(JSAMPLE) (ScaleQuantumToChar((Quantum) (QuantumRange-
-              p->blue)));
+              GetBlueSample(p))));
             *q++=(JSAMPLE) (ScaleQuantumToChar((Quantum) (QuantumRange-
               indexes[x])));
             p++;