diff --git a/magick/montage.c b/magick/montage.c
index 93c5d55..de5d11c 100644
--- a/magick/montage.c
+++ b/magick/montage.c
@@ -660,12 +660,12 @@
       GetMontageGeometry(montage_info->tile,number_images,&x_offset,&y_offset,
         &sans,&sans);
     y_offset+=(ssize_t) title_offset;
-    (void) FormatMagickString(montage->montage,MaxTextExtent,"%ldx%ld%+ld%+ld",
-      (long) (extract_info.width+(extract_info.x+border_width)*2),
-      (long) (extract_info.height+(extract_info.y+border_width)*2+
-      (long) ((metrics.ascent-metrics.descent+4)*number_lines+
-      (montage_info->shadow != MagickFalse ? 4 : 0))),(long) x_offset,
-      (long) y_offset);
+    (void) FormatMagickString(montage->montage,MaxTextExtent,
+      "%.20gx%.20g%+.20gx%+.20g",(double) (extract_info.width+
+      (extract_info.x+border_width)*2),(double) (extract_info.height+
+      (extract_info.y+border_width)*2+(double) ((metrics.ascent-
+      metrics.descent+4)*number_lines+(montage_info->shadow != MagickFalse ? 4 :
+      0))),(double) x_offset,(double) y_offset);
     *montage->directory='\0';
     tile=0;
     while (tile < MagickMin((ssize_t) tiles_per_page,(ssize_t) number_images))
@@ -697,9 +697,9 @@
         clone_info->gravity=CenterGravity;
         clone_info->pointsize*=2.0;
         (void) GetTypeMetrics(image_list[0],clone_info,&metrics);
-        (void) FormatMagickString(geometry,MaxTextExtent,"%lux%lu%+ld%+ld",
-          (unsigned long) montage->columns,(unsigned long) (metrics.ascent-
-          metrics.descent),0L,(long) extract_info.y+4);
+        (void) FormatMagickString(geometry,MaxTextExtent,
+          "%.20gx%.20g%+.20gx%+.20g",(double) montage->columns,(double)
+          (metrics.ascent-metrics.descent),0.0,(double) extract_info.y+4);
         (void) CloneString(&clone_info->geometry,geometry);
         (void) CloneString(&clone_info->text,title);
         (void) AnnotateImage(montage,clone_info);
@@ -766,8 +766,8 @@
       tile_image->gravity=montage_info->gravity;
       if (image->gravity != UndefinedGravity)
         tile_image->gravity=image->gravity;
-      (void) FormatMagickString(tile_geometry,MaxTextExtent,"%lux%lu+0+0",
-        (unsigned long) image->columns,(unsigned long) image->rows);
+      (void) FormatMagickString(tile_geometry,MaxTextExtent,"%.20gx%.20g+0+0",
+        (double) image->columns,(double) image->rows);
       flags=ParseGravityGeometry(tile_image,tile_geometry,&geometry,exception);
       x=(ssize_t) (geometry.x+border_width);
       y=(ssize_t) (geometry.y+border_width);
@@ -834,13 +834,13 @@
                 Annotate composite tile with label.
               */
               (void) FormatMagickString(geometry,MaxTextExtent,
-                "%lux%lu%+ld%+ld",(unsigned long) ((montage_info->frame ?
-                image->columns : width)-2*border_width),(unsigned long)
+                "%.20gx%.20g%+.20gx%+.20g",(double) ((montage_info->frame ?
+                image->columns : width)-2*border_width),(double)
                 (metrics.ascent-metrics.descent+4)*MultilineCensus(value),
-                (long) (x_offset+border_width),(long) ((montage_info->frame ?
-                y_offset+height+border_width+4 : y_offset+extract_info.height+
-                border_width+(montage_info->shadow != MagickFalse ? 4 : 0))+
-                bevel_width));
+                (double) (x_offset+border_width),(double)
+                ((montage_info->frame ? y_offset+height+border_width+4 :
+                y_offset+extract_info.height+border_width+
+                (montage_info->shadow != MagickFalse ? 4 : 0))+bevel_width));
               (void) CloneString(&draw_info->geometry,geometry);
               (void) CloneString(&draw_info->text,value);
               (void) AnnotateImage(montage,draw_info);