diff --git a/magick/option.c b/magick/option.c
index 899879c..54dc1c7 100644
--- a/magick/option.c
+++ b/magick/option.c
@@ -316,6 +316,8 @@
     { "-extract", 1L, MagickFalse },
     { "+family", 0L, MagickFalse },
     { "-family", 1L, MagickFalse },
+    { "+fft", 0L, MagickFalse },
+    { "-fft", 0L, MagickFalse },
     { "+fill", 0L, MagickFalse },
     { "-fill", 1L, MagickFalse },
     { "+filter", 0L, MagickFalse },
@@ -662,7 +664,7 @@
     { "-window", 1L, MagickFalse },
     { "+window-group", 0L, MagickFalse },
     { "-window-group", 1L, MagickFalse },
-    { "+write", 0L, MagickFalse },
+    { "+write", 1L, MagickFalse },
     { "-write", 1L, MagickFalse },
     { (char *) NULL, (long) 0L, MagickFalse }
   },
@@ -959,6 +961,7 @@
     { "debug", MagickTrue, MagickFalse },
     { "deconstruct", MagickTrue, MagickFalse },
     { "delete", MagickTrue, MagickFalse },
+    { "fft", MagickTrue, MagickFalse },
     { "flatten", MagickTrue, MagickFalse },
     { "fx", MagickTrue, MagickFalse },
     { "hald-clut", MagickTrue, MagickFalse },
diff --git a/wand/mogrify.c b/wand/mogrify.c
index 6c1a45b..cea0dbf 100644
--- a/wand/mogrify.c
+++ b/wand/mogrify.c
@@ -1431,23 +1431,6 @@
             (void) CloneString(&draw_info->family,argv[i+1]);
             break;
           }
-        if (LocaleCompare("fft",option+1) == 0)
-          {
-            Image
-              *fourier_image;
-
-            /*
-              Implements the discrete Fourier transform (DFT).
-            */
-            (void) SyncImageSettings(image_info,*image);
-            fourier_image=ForwardFourierTransformImage(*image,*option == '-' ?
-              MagickTrue : MagickFalse,exception);
-            if (fourier_image == (Image *) NULL)
-              break;
-            *image=DestroyImage(*image);
-            *image=fourier_image;
-            break;
-          }
         if (LocaleCompare("fill",option+1) == 0)
           {
             ExceptionInfo
@@ -4615,6 +4598,23 @@
               ThrowMogrifyException(OptionError,"MissingArgument",option);
             break;
           }
+        if (LocaleCompare("fft",option+1) == 0)
+          {
+            Image
+              *fourier_image;
+
+            /*
+              Implements the discrete Fourier transform (DFT).
+            */
+            (void) SyncImageSettings(image_info,*images);
+            fourier_image=ForwardFourierTransformImage(*images,*option == '-' ?
+              MagickTrue : MagickFalse,exception);
+            if (fourier_image == (Image *) NULL)
+              break;
+            *images=DestroyImage(*images);
+            *images=fourier_image;
+            break;
+          }
         if (LocaleCompare("fill",option+1) == 0)
           {
             if (*option == '+')