diff --git a/Magick++/lib/Image.cpp b/Magick++/lib/Image.cpp
index 83001da..089bda6 100644
--- a/Magick++/lib/Image.cpp
+++ b/Magick++/lib/Image.cpp
@@ -4273,7 +4273,7 @@
       ExceptionInfo exceptionInfo;
       GetExceptionInfo( &exceptionInfo );
       _imgRef->id(_imgRef->id()+1);
-      sprintf(id,"%ld\n",(long) _imgRef->id());
+      sprintf(id,"%.20g\n",(double) _imgRef->id());
       SetImageRegistry(ImageRegistryType, id, image(), &exceptionInfo);
       throwException( exceptionInfo );
   (void) DestroyExceptionInfo( &exceptionInfo );
diff --git a/Magick++/lib/ImageRef.cpp b/Magick++/lib/ImageRef.cpp
index 8a007b4..c736a89 100644
--- a/Magick++/lib/ImageRef.cpp
+++ b/Magick++/lib/ImageRef.cpp
@@ -59,7 +59,7 @@
   if( _id > -1 )
     {
       char id[MaxTextExtent];
-      sprintf(id,"%ld",(long) _id);
+      sprintf(id,"%.20g",(double) _id);
       DeleteImageRegistry( id );
       _id=-1;
     }
@@ -97,7 +97,7 @@
   if( _id > -1 )
     {
       char id[MaxTextExtent];
-      sprintf(id,"%ld",(long) _id);
+      sprintf(id,"%.20g",(double) _id);
       DeleteImageRegistry( id );
     }
   _id = id_;