diff --git a/coders/jp2.c b/coders/jp2.c
index 473e5bf..eda6af3 100644
--- a/coders/jp2.c
+++ b/coders/jp2.c
@@ -244,13 +244,13 @@
   return((int) count);
 }
 
-static ssize_t BlobSeek(jas_stream_obj_t *object,ssize_t offset,int origin)
+static long BlobSeek(jas_stream_obj_t *object,long offset,int origin)
 {
   StreamManager
     *source;
 
   source=(StreamManager *) object;
-  return((ssize_t) SeekBlob(source->image,offset,origin));
+  return((long) SeekBlob(source->image,offset,origin));
 }
 
 static int BlobClose(jas_stream_obj_t *object)
@@ -614,7 +614,7 @@
           blob=(jas_stream_memobj_t *) icc_stream->obj_;
           if (image->debug != MagickFalse)
             (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-              "Profile: ICC, %lu bytes",(size_t) blob->len_);
+              "Profile: ICC, %lu bytes",(unsigned long) blob->len_);
           profile=AcquireStringInfo(blob->len_);
           SetStringInfoDatum(profile,blob->buf_);
           icc_profile=(StringInfo *) GetImageProfile(image,"icc");
diff --git a/coders/png.c b/coders/png.c
index b87ea6a..5fe83d1 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -8561,7 +8561,7 @@
                 if (logging != MagickFalse)
                   (void) LogMagickEvent(CoderEvent,GetMagickModule(),
                     "    Skipping %c%c%c%c chunk, length=%lu.",
-                    *(p),*(p+1),*(p+2),*(p+3),len);
+                    *(p),*(p+1),*(p+2),*(p+3),(unsigned long) len);
               }
             p+=(8+len);
           }
@@ -8571,8 +8571,7 @@
           /* Write JDAA chunk header */
           if (logging != MagickFalse)
             (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-              "  Write JDAA chunk, length=%lu.",
-              (size_t) length);
+              "  Write JDAA chunk, length=%lu.",(unsigned long) length);
           (void) WriteBlobMSBULong(image,(size_t) length);
           PNGType(chunk,mng_JDAA);
           LogPNGChunk((int) logging,mng_JDAA,length);
@@ -8611,8 +8610,8 @@
 
   if (logging != MagickFalse)
     (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-      "  Created jpeg_image, %lu x %lu.",jpeg_image->columns,
-      jpeg_image->rows);
+      "  Created jpeg_image, %lu x %lu.",(unsigned long) jpeg_image->columns,
+      (unsigned long) jpeg_image->rows);
 
   if (jng_color_type == 8 || jng_color_type == 12)
     jpeg_image_info->type=GrayscaleType;
@@ -8627,11 +8626,10 @@
     {
       (void) LogMagickEvent(CoderEvent,GetMagickModule(),
         "  Successfully read jpeg_image into a blob, length=%lu.",
-        (size_t) length);
+        (unsigned long) length);
 
       (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-        "  Write JDAT chunk, length=%lu.",
-        (size_t) length);
+        "  Write JDAT chunk, length=%lu.",(unsigned long) length);
     }
   /* Write JDAT chunk(s) */
   (void) WriteBlobMSBULong(image,(size_t) length);
@@ -8871,7 +8869,7 @@
         (void) LogMagickEvent(CoderEvent,GetMagickModule(),
           "    Optimize: FALSE");
       (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-        "    Image_info depth: %ld",image_info->depth);
+        "    Image_info depth: %lu",(unsigned long) image_info->depth);
       (void) LogMagickEvent(CoderEvent,GetMagickModule(),
         "    Type: %d",image_info->type);
 
@@ -8879,9 +8877,9 @@
       for (p=image; p != (Image *) NULL; p=GetNextImageInList(p))
       {
         (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-          "    Scene: %ld",scene++);
+          "    Scene: %lu",(unsigned long) scene++);
         (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-          "      Image depth: %lu",p->depth);
+          "      Image depth: %lu",(unsigned long) p->depth);
         if (p->matte)
           (void) LogMagickEvent(CoderEvent,GetMagickModule(),
             "      Matte: True");
@@ -8896,7 +8894,7 @@
             "      Storage class: DirectClass");
         if (p->colors)
           (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-            "      Number of colors: %lu",p->colors);
+            "      Number of colors: %lu",(unsigned long) p->colors);
         else
           (void) LogMagickEvent(CoderEvent,GetMagickModule(),
             "      Number of colors: unspecified");
@@ -9230,14 +9228,14 @@
            {
              (void) LogMagickEvent(CoderEvent,GetMagickModule(),
                "     TERM delay: %lu",
-               (size_t) (mng_info->ticks_per_second*
+               (unsigned long) (mng_info->ticks_per_second*
                   final_delay/MagickMax(image->ticks_per_second,1)));
              if (image->iterations == 0)
                (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                 "     TERM iterations: %lu",(size_t) PNG_UINT_31_MAX);
+                 "     TERM iterations: %lu",(unsigned long) PNG_UINT_31_MAX);
              else
                (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                 "     Image iterations: %lu",image->iterations);
+                 "     Image iterations: %lu",(unsigned long) image->iterations);
            }
          (void) WriteBlob(image,14,chunk);
          (void) WriteBlobMSBULong(image,crc32(0,chunk,14));
diff --git a/coders/tiff.c b/coders/tiff.c
index 0d4c6a7..7ccf301 100644
--- a/coders/tiff.c
+++ b/coders/tiff.c
@@ -928,7 +928,7 @@
     image->depth=(size_t) bits_per_sample;
     if (image->debug != MagickFalse)
       (void) LogMagickEvent(CoderEvent,GetMagickModule(),"Image depth: %lu",
-        image->depth);
+        (unsigned long) image->depth);
     lsb_first=1;
     image->endian=MSBEndian;
     if ((int) (*(char *) &lsb_first) != 0)
diff --git a/coders/wmf.c b/coders/wmf.c
index b0a6e80..6df1271 100644
--- a/coders/wmf.c
+++ b/coders/wmf.c
@@ -99,14 +99,14 @@
   return(ReadBlobByte((Image *) image));
 }
 
-static int WMFSeekBlob(void *image,ssize_t offset)
+static int WMFSeekBlob(void *image,long offset)
 {
   return((int) SeekBlob((Image *) image,(MagickOffsetType) offset,SEEK_SET));
 }
 
-static ssize_t WMFTellBlob(void *image)
+static long WMFTellBlob(void *image)
 {
-  return((ssize_t) TellBlob((Image*) image));
+  return((long) TellBlob((Image*) image));
 }
 
 static Image *ReadWMFImage(const ImageInfo *image_info,ExceptionInfo *exception)
diff --git a/coders/wpg.c b/coders/wpg.c
index 411be69..29ebefe 100644
--- a/coders/wpg.c
+++ b/coders/wpg.c
@@ -598,7 +598,7 @@
             {
               (void) fprintf(stderr,
                              "\nUnsupported WPG2 unaligned token RST x=%lu, please report!\n"
-                             ,x);
+                             ,(unsigned long) x);
               return(-3);
             }
           {
diff --git a/coders/xbm.c b/coders/xbm.c
index 1167495..4aef1fc 100644
--- a/coders/xbm.c
+++ b/coders/xbm.c
@@ -203,6 +203,10 @@
     value,
     version;
 
+  unsigned long
+    height,
+    width;
+
   /*
     Open image file.
   */
@@ -223,16 +227,20 @@
   /*
     Read X bitmap header.
   */
+  width=0;
+  height=0;
   while (ReadBlobString(image,buffer) != (char *) NULL)
-    if (sscanf(buffer,"#define %s %lu",name,&image->columns) == 2)
+    if (sscanf(buffer,"#define %s %lu",name,&width) == 2)
       if ((strlen(name) >= 6) &&
           (LocaleCompare(name+strlen(name)-6,"_width") == 0))
-          break;
+        break;
   while (ReadBlobString(image,buffer) != (char *) NULL)
-    if (sscanf(buffer,"#define %s %lu",name,&image->rows) == 2)
+    if (sscanf(buffer,"#define %s %lu",name,&height) == 2)
       if ((strlen(name) >= 7) &&
           (LocaleCompare(name+strlen(name)-7,"_height") == 0))
-          break;
+        break;
+  image->columns=width;
+  image->rows=width;
   image->depth=8;
   image->storage_class=PseudoClass;
   image->colors=2;
@@ -509,10 +517,10 @@
   */
   GetPathComponent(image->filename,BasePath,basename);
   (void) FormatMagickString(buffer,MaxTextExtent,"#define %s_width %lu\n",
-    basename,image->columns);
+    basename,(unsigned long) image->columns);
   (void) WriteBlob(image,strlen(buffer),(unsigned char *) buffer);
   (void) FormatMagickString(buffer,MaxTextExtent,"#define %s_height %lu\n",
-    basename,image->rows);
+    basename,(unsigned long) image->rows);
   (void) WriteBlob(image,strlen(buffer),(unsigned char *) buffer);
   (void) FormatMagickString(buffer,MaxTextExtent,
     "static char %s_bits[] = {\n",basename);
diff --git a/coders/xps.c b/coders/xps.c
index 29b9359..3493b86 100644
--- a/coders/xps.c
+++ b/coders/xps.c
@@ -264,7 +264,7 @@
   if (image_info->page != (char *) NULL)
     (void) ParseAbsoluteGeometry(image_info->page,&page);
   (void) FormatMagickString(geometry,MaxTextExtent,"%lux%lu",
-    page.width,page.height);
+    (unsigned long) page.width,(unsigned long) page.height);
   if (image_info->monochrome != MagickFalse)
     delegate_info=GetDelegateInfo("xps:mono",(char *) NULL,exception);
   else
@@ -283,7 +283,7 @@
   page.height=(size_t) floor(page.height*image->y_resolution/delta.y+
     0.5);
   (void) FormatMagickString(options,MaxTextExtent,"-g%lux%lu ",
-    page.width,page.height);
+    (unsigned long) page.width,(unsigned long) page.height);
   image=DestroyImage(image);
   read_info=CloneImageInfo(image_info);
   *read_info->magick='\0';
@@ -291,11 +291,11 @@
     {
       if (read_info->number_scenes != 1)
         (void) FormatMagickString(options,MaxTextExtent,"-dLastPage=%lu",
-          read_info->scene+read_info->number_scenes);
+          (unsigned long) (read_info->scene+read_info->number_scenes));
       else
         (void) FormatMagickString(options,MaxTextExtent,
-          "-dFirstPage=%lu -dLastPage=%lu",read_info->scene+1,read_info->scene+
-          read_info->number_scenes);
+          "-dFirstPage=%lu -dLastPage=%lu",(unsigned long) read_info->scene+1,
+          (unsigned long) (read_info->scene+read_info->number_scenes));
       read_info->number_scenes=0;
       if (read_info->scenes != (char *) NULL)
         *read_info->scenes='\0';