diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c
index 31503ef..a4d1e2f 100644
--- a/MagickWand/mogrify.c
+++ b/MagickWand/mogrify.c
@@ -625,6 +625,9 @@
     *format,
     *option;
 
+  double
+    attenuate;
+
   DrawInfo
     *draw_info;
 
@@ -676,6 +679,7 @@
   SetGeometryInfo(&geometry_info);
   GetPixelInfo(*image,&fill);
   SetPixelInfoPacket(*image,&(*image)->background_color,&fill);
+  attenuate=1.0;
   compose=(*image)->compose;
   interpolate_method=UndefinedInterpolatePixel;
   channel=mogrify_info->channel;
@@ -813,6 +817,16 @@
               MagickFalse;
             break;
           }
+        if (LocaleCompare("attenuate",option+1) == 0)
+          {
+            if (*option == '+')
+              {
+                attenuate=1.0;
+                break;
+              }
+            attenuate=InterpretLocaleValue(argv[i+1],(char **) NULL);
+            break;
+          }
         if (LocaleCompare("auto-gamma",option+1) == 0)
           {
             /*
@@ -2186,7 +2200,7 @@
 
                 noise=(NoiseType) ParseCommandOption(MagickNoiseOptions,
                   MagickFalse,argv[i+1]);
-                mogrify_image=AddNoiseImage(*image,noise,exception);
+                mogrify_image=AddNoiseImage(*image,noise,attenuate,exception);
               }
             break;
           }
@@ -6159,14 +6173,6 @@
             image_info->antialias=(*option == '-') ? MagickTrue : MagickFalse;
             break;
           }
-        if (LocaleCompare("attenuate",option+1) == 0)
-          {
-            if (*option == '+')
-              (void) DeleteImageOption(image_info,option+1);
-            else
-              (void) SetImageOption(image_info,option+1,argv[i+1]);
-            break;
-          }
         if (LocaleCompare("authenticate",option+1) == 0)
           {
             if (*option == '+')