diff --git a/coders/clip.c b/coders/clip.c
index 1939b42..c02589f 100644
--- a/coders/clip.c
+++ b/coders/clip.c
@@ -236,7 +236,6 @@
     return(MagickFalse);
   (void) CopyMagickString(clip_image->filename,image->filename,MaxTextExtent);
   write_info=CloneImageInfo(image_info);
-  *write_info->magick='\0';
   (void) SetImageInfo(write_info,1,exception);
   if (LocaleCompare(write_info->magick,"CLIP") == 0)
     (void) FormatLocaleString(clip_image->filename,MaxTextExtent,"miff:%s",
diff --git a/coders/ept.c b/coders/ept.c
index 24aa738..5a99c46 100644
--- a/coders/ept.c
+++ b/coders/ept.c
@@ -402,7 +402,6 @@
   if (write_image == (Image *) NULL)
     return(MagickFalse);
   write_info=CloneImageInfo(image_info);
-  *write_info->magick='\0';
   (void) CopyMagickString(write_info->magick,"EPS",MaxTextExtent);
   if (LocaleCompare(image_info->magick,"EPT2") == 0)
     (void) CopyMagickString(write_info->magick,"EPS2",MaxTextExtent);
diff --git a/coders/mask.c b/coders/mask.c
index 1541200..fafe681 100644
--- a/coders/mask.c
+++ b/coders/mask.c
@@ -301,7 +301,6 @@
     return(MagickFalse);
   (void) CopyMagickString(mask_image->filename,image->filename,MaxTextExtent);
   write_info=CloneImageInfo(image_info);
-  *write_info->magick='\0';
   (void) SetImageInfo(write_info,1,exception);
   if (LocaleCompare(write_info->magick,"MASK") == 0)
     (void) FormatLocaleString(mask_image->filename,MaxTextExtent,"miff:%s",
diff --git a/coders/matte.c b/coders/matte.c
index 018486c..9a0a498 100644
--- a/coders/matte.c
+++ b/coders/matte.c
@@ -211,9 +211,9 @@
       break;
   }
   write_info=CloneImageInfo(image_info);
-  *write_info->magick='\0';
-  (void) FormatLocaleString(matte_image->filename,MaxTextExtent,
-    "MIFF:%s",image->filename);
+  if (LocaleCompare(write_info->magick,"MATTE") == 0)
+    (void) FormatLocaleString(matte_image->filename,MaxTextExtent,
+      "MIFF:%s",image->filename);
   status=WriteImage(write_info,matte_image,exception);
   write_info=DestroyImageInfo(write_info);
   matte_image=DestroyImage(matte_image);
diff --git a/coders/preview.c b/coders/preview.c
index 9b59e1d..02ff75f 100644
--- a/coders/preview.c
+++ b/coders/preview.c
@@ -189,7 +189,6 @@
   (void) CopyMagickString(preview_image->filename,image_info->filename,
     MaxTextExtent);
   write_info=CloneImageInfo(image_info);
-  *write_info->magick='\0';
   (void) SetImageInfo(write_info,1,exception);
   if (LocaleCompare(write_info->magick,"PREVIEW") == 0)
     (void) FormatLocaleString(preview_image->filename,MaxTextExtent,
diff --git a/coders/thumbnail.c b/coders/thumbnail.c
index d27afcf..90eba4b 100644
--- a/coders/thumbnail.c
+++ b/coders/thumbnail.c
@@ -210,7 +210,6 @@
   (void) CopyMagickString(thumbnail_image->filename,image->filename,
     MaxTextExtent);
   write_info=CloneImageInfo(image_info);
-  *write_info->magick='\0';
   (void) SetImageInfo(write_info,1,exception);
   if (LocaleCompare(write_info->magick,"THUMBNAIL") == 0)
     (void) FormatLocaleString(thumbnail_image->filename,MaxTextExtent,
diff --git a/coders/vid.c b/coders/vid.c
index 8a5cdd6..a417273 100644
--- a/coders/vid.c
+++ b/coders/vid.c
@@ -335,7 +335,6 @@
   (void) CopyMagickString(montage_image->filename,image_info->filename,
     MaxTextExtent);
   write_info=CloneImageInfo(image_info);
-  *write_info->magick='\0';
   (void) SetImageInfo(write_info,1,exception);
   if (LocaleCompare(write_info->magick,"VID") == 0)
     (void) FormatLocaleString(montage_image->filename,MaxTextExtent,
