diff --git a/coders/psd.c b/coders/psd.c
index 8167802..7227238 100644
--- a/coders/psd.c
+++ b/coders/psd.c
@@ -774,10 +774,10 @@
   psd_info.mode=ReadBlobMSBShort(image);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-      "  Image is %lu x %lu with channels=%lu, depth=%lu, mode=%s",
-      (unsigned long) psd_info.columns,(unsigned long) psd_info.rows,
-      (unsigned long) psd_info.channels,(unsigned long) psd_info.depth,
-      ModeToString((PSDImageType) psd_info.mode));
+      "  Image is %.20g x %.20g with channels=%.20g, depth=%.20g, mode=%s",
+      (double) psd_info.columns,(double) psd_info.rows,(double)
+      psd_info.channels,(double) psd_info.depth,ModeToString((PSDImageType)
+      psd_info.mode));
   /*
     Initialize image.
   */
@@ -863,7 +863,7 @@
       */
       if (image->debug != MagickFalse)
         (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-          "  reading image resource blocks - %lu bytes",(unsigned long) length);
+          "  reading image resource blocks - %.20g bytes",(double) length);
       blocks=(unsigned char *) AcquireQuantumMemory((size_t) length,
         sizeof(*blocks));
       if (blocks == (unsigned char *) NULL)
@@ -936,7 +936,7 @@
           number_layers=(short) ReadBlobMSBShort(image);
           if (image->debug != MagickFalse)
             (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-              "  image contains %ld layers",(long) number_layers);
+              "  image contains %.20g layers",(double) number_layers);
           if (number_layers < 0)
             {
               /*
@@ -963,7 +963,7 @@
           {
             if (image->debug != MagickFalse)
               (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                "  reading layer #%ld",(long) i+1);
+                "  reading layer #%.20g",(double) i+1);
             layer_info[i].page.y=(ssize_t) ReadBlobMSBLong(image);
             layer_info[i].page.x=(ssize_t) ReadBlobMSBLong(image);
             layer_info[i].page.height=(size_t)
@@ -979,10 +979,10 @@
               ThrowReaderException(CorruptImageError,"MaximumChannelsExceeded");
             if (image->debug != MagickFalse)
               (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                "    offset(%ld,%ld), size(%ld,%ld), channels=%ld",
-                (long) layer_info[i].page.x,(long) layer_info[i].page.y,
-                (long) layer_info[i].page.height,(long)
-                layer_info[i].page.width,(long) layer_info[i].channels);
+                "    offset(%.20g,%.20g), size(%.20g,%.20g), channels=%.20g",
+                (double) layer_info[i].page.x,(double) layer_info[i].page.y,
+                (double) layer_info[i].page.height,(double)
+                layer_info[i].page.width,(double) layer_info[i].channels);
             for (j=0; j < (ssize_t) layer_info[i].channels; j++)
             {
               layer_info[i].channel_info[j].type=(short)
@@ -991,9 +991,9 @@
                 GetPSDSize(&psd_info,image);
               if (image->debug != MagickFalse)
                 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                  "    channel[%ld]: type=%ld, size=%ld",(long) j,
-                  (long) layer_info[i].channel_info[j].type,
-                  (long) layer_info[i].channel_info[j].size);
+                  "    channel[%.20g]: type=%.20g, size=%.20g",(double) j,
+                  (double) layer_info[i].channel_info[j].type,
+                  (double) layer_info[i].channel_info[j].size);
             }
             count=ReadBlob(image,4,(unsigned char *) type);
             if ((count == 0) || (LocaleNCompare(type,"8BIM",4) != 0))
@@ -1011,8 +1011,8 @@
             layer_info[i].visible=!(layer_info[i].flags & 0x02);
             if (image->debug != MagickFalse)
               (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                "   blend=%.4s, opacity=%lu, clipping=%s, flags=%d, visible=%s",
-                layer_info[i].blendkey,(long) layer_info[i].opacity,
+                "   blend=%.4s, opacity=%.20g, clipping=%s, flags=%d, visible=%s",
+                layer_info[i].blendkey,(double) layer_info[i].opacity,
                 layer_info[i].clipping ? "true" : "false",layer_info[i].flags,
                 layer_info[i].visible ? "true" : "false");
             (void) ReadBlobByte(image);  /* filler */
@@ -1041,10 +1041,10 @@
                       layer_info[i].mask.width+=4294967295UL;
                     if (image->debug != MagickFalse)
                       (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                        "      layer mask: offset(%ld,%ld), size(%ld,%ld), length=%ld",
-                        (long) layer_info[i].mask.x,(long) layer_info[i].mask.y,
-                        (long) layer_info[i].mask.width,(long)
-                        layer_info[i].mask.height,(long) length-16);
+                        "      layer mask: offset(%.20g,%.20g), size(%.20g,%.20g), length=%.20g",
+                        (double) layer_info[i].mask.x,(double) layer_info[i].mask.y,
+                        (double) layer_info[i].mask.width,(double)
+                        layer_info[i].mask.height,(double) length-16);
                     /*
                       Skip over the rest of the layer mask information.
                     */
@@ -1060,7 +1060,7 @@
                     */
                     if (image->debug != MagickFalse)
                       (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                        "      layer blending ranges: length=%ld",(long)
+                        "      layer blending ranges: length=%.20g",(double)
                         length);
                     /*
                       We read it, but don't use it...
@@ -1111,8 +1111,8 @@
               {
       if (image->debug != MagickFalse)
                   (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                            "      adjustment layer key: %.4s, data length=%ld",
-                            alkey, length);
+                            "      adjustment layer key: %.4s, data length=%.20g",
+                            alkey, (double) length);
               }
 
               if ( length ) {
@@ -1129,7 +1129,7 @@
                 */
                 if (image->debug != MagickFalse)
                   (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                    "      unsupported data: length=%ld",(long)
+                    "      unsupported data: length=%.20g",(double)
                     (size-combinedlength));
                 for (j=0; j < (ssize_t) (size-combinedlength); j++)
                   (void) ReadBlobByte(image);
@@ -1145,7 +1145,7 @@
                   layer_info[j].image=DestroyImage(layer_info[j].image);
                 if (image->debug != MagickFalse)
                   (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                    "  allocation of image for layer %ld failed",(long) i);
+                    "  allocation of image for layer %.20g failed",(double) i);
                 ThrowReaderException(ResourceLimitError,
                   "MemoryAllocationFailed");
               }
@@ -1169,14 +1169,14 @@
             /*
               Set up some hidden attributes for folks that need them.
             */
-            (void) FormatMagickString(message,MaxTextExtent,"%ld",
-              (long) layer_info[i].page.x);
+            (void) FormatMagickString(message,MaxTextExtent,"%.20gld",
+              (double) layer_info[i].page.x);
             (void) SetImageArtifact(layer_info[i].image,"psd:layer.x",message);
-            (void) FormatMagickString(message,MaxTextExtent,"%ld",
-              (long) layer_info[i].page.y);
+            (void) FormatMagickString(message,MaxTextExtent,"%.20g",
+              (double) layer_info[i].page.y);
             (void) SetImageArtifact(layer_info[i].image,"psd:layer.y",message);
-            (void) FormatMagickString(message,MaxTextExtent,"%lu",
-              (unsigned long) layer_info[i].opacity);
+            (void) FormatMagickString(message,MaxTextExtent,"%.20g",
+              (double) layer_info[i].opacity);
             (void) SetImageArtifact(layer_info[i].image,"psd:layer.opacity",
               message);
             (void) SetImageProperty(layer_info[i].image,"label",(char *)
@@ -1192,12 +1192,12 @@
         {
           if (image->debug != MagickFalse)
             (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-              "  reading data for layer %ld",(long) i);
+              "  reading data for layer %.20g",(double) i);
             for (j=0; j < (ssize_t) layer_info[i].channels; j++)
             {
               if (image->debug != MagickFalse)
                 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                  "    reading data for channel %ld",(long) j);
+                  "    reading data for channel %.20g",(double) j);
 #if     1
               if (layer_info[i].channel_info[j].size <= (2*layer_info[i].image->rows))
                 {