diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c
index 6744c3f..95b85ec 100644
--- a/MagickWand/mogrify.c
+++ b/MagickWand/mogrify.c
@@ -7424,7 +7424,6 @@
                   {
                     /*
                       Set a blending mask for the composition.
-                      Possible problem, what if image->mask already set.
                     */
                     (void) NegateImage(mask_image,MagickFalse,exception);
                     (void) SetImageMask(image,mask_image,exception);
diff --git a/MagickWand/operation.c b/MagickWand/operation.c
index 40e6efd..bf136e0 100644
--- a/MagickWand/operation.c
+++ b/MagickWand/operation.c
@@ -3628,19 +3628,15 @@
                 {
                   /*
                     Set a blending mask for the composition.
-                    Possible problem, what if image->mask already set.
                   */
-                  image->mask=mask_image;
-                  (void) NegateImage(image->mask,MagickFalse,exception);
+                  (void) NegateImage(mask_image,MagickFalse,exception);
+                  (void) SetImageMask(image,mask_image,exception);
+                  mask_image=DestroyImage(mask_image);
                 }
             }
           (void) CompositeImage(image,compose,composite_image,
             geometry.x,geometry.y,exception);
-          if (mask_image != (Image *) NULL)
-            {
-              image->mask=DestroyImage(image->mask);
-              mask_image=(Image *) NULL;
-            }
+          (void) SetImageMask(image,(Image *) NULL,exception);
           composite_image=DestroyImage(composite_image);
           *images=DestroyImageList(*images);
           *images=image;