diff --git a/coders/dpx.c b/coders/dpx.c
index afa2d60..281bf91 100644
--- a/coders/dpx.c
+++ b/coders/dpx.c
@@ -1217,6 +1217,9 @@
       MagickTrue : MagickFalse);
     for (y=0; y < (ssize_t) image->rows; y++)
     {
+      const void
+        *pixels;
+
       MagickBooleanType
         sync;
 
@@ -1230,29 +1233,24 @@
         count,
         offset;
 
-      unsigned char
-        *pixels;
-
       if (status == MagickFalse)
         continue;
-      pixels=GetQuantumPixels(quantum_info);
-      {
-        count=ReadBlob(image,extent,pixels);
-        if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
-            (image->previous == (Image *) NULL))
-          {
-            MagickBooleanType
-              proceed;
-
-            proceed=SetImageProgress(image,LoadImageTag,(MagickOffsetType) row,
-              image->rows);
-            if (proceed == MagickFalse)
-              status=MagickFalse;
-          }
-        offset=row++;
-      }
+      pixels=ReadBlobStream(image,length,GetQuantumPixels(quantum_info),
+        &count);
       if (count != (ssize_t) extent)
         status=MagickFalse;
+      if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
+          (image->previous == (Image *) NULL))
+        {
+          MagickBooleanType
+            proceed;
+
+          proceed=SetImageProgress(image,LoadImageTag,(MagickOffsetType) row,
+            image->rows);
+          if (proceed == MagickFalse)
+            status=MagickFalse;
+        }
+      offset=row++;
       q=QueueAuthenticPixels(image,0,offset,image->columns,1,exception);
       if (q == (Quantum *) NULL)
         {