...
diff --git a/coders/ps2.c b/coders/ps2.c
index 105e699..a06066c 100644
--- a/coders/ps2.c
+++ b/coders/ps2.c
@@ -438,6 +438,7 @@
     bounds;
 
   size_t
+    imageListLength,
     length,
     page,
     text_size;
@@ -487,6 +488,7 @@
   (void) memset(&bounds,0,sizeof(bounds));
   page=1;
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -606,7 +608,7 @@
               (void) CopyMagickString(buffer,"%%Pages: 1\n",MagickPathExtent);
             else
               (void) FormatLocaleString(buffer,MagickPathExtent,
-                "%%%%Pages: %.20g\n",(double) GetImageListLength(image));
+                "%%%%Pages: %.20g\n",(double) imageListLength);
             (void) WriteBlobString(image,buffer);
           }
         if (image->colorspace == CMYKColorspace)
@@ -1118,8 +1120,7 @@
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);