diff --git a/wand/mogrify.c b/wand/mogrify.c
index 4761eea..4c586d4 100644
--- a/wand/mogrify.c
+++ b/wand/mogrify.c
@@ -2217,6 +2217,23 @@
             *image=median_image;
             break;
           }
+        if (LocaleCompare("mode",option+1) == 0)
+          {
+            Image
+              *mode_image;
+
+            /*
+              Mode image.
+            */
+            (void) SyncImageSettings(mogrify_info,*image);
+            (void) ParseGeometry(argv[i+1],&geometry_info);
+            mode_image=ModeImage(*image,geometry_info.rho,exception);
+            if (mode_image == (Image *) NULL)
+              break;
+            *image=DestroyImage(*image);
+            *image=mode_image;
+            break;
+          }
         if (LocaleCompare("modulate",option+1) == 0)
           {
             (void) SyncImageSettings(mogrify_info,*image);
@@ -5404,6 +5421,17 @@
               ThrowMogrifyInvalidArgumentException(option,argv[i]);
             break;
           }
+        if (LocaleCompare("mode",option+1) == 0)
+          {
+            if (*option == '+')
+              break;
+            i++;
+            if (i == (ssize_t) argc)
+              ThrowMogrifyException(OptionError,"MissingArgument",option);
+            if (IsGeometry(argv[i]) == MagickFalse)
+              ThrowMogrifyInvalidArgumentException(option,argv[i]);
+            break;
+          }
         if (LocaleCompare("monitor",option+1) == 0)
           break;
         if (LocaleCompare("monochrome",option+1) == 0)