diff --git a/MagickWand/operation.c b/MagickWand/operation.c
index 2c59fa6..3db8566 100644
--- a/MagickWand/operation.c
+++ b/MagickWand/operation.c
@@ -3856,15 +3856,19 @@
 
           /* Compose value from "-compose" option only */
           value=GetImageOption(_image_info,"compose");
-          if (value != (const char *) NULL)
-            compose=(CompositeOperator) ParseCommandOption(
-                 MagickComposeOptions,MagickFalse,value);
-          else
+          if (value == (const char *) NULL)
             compose=OverCompositeOp;  /* use Over not source_image->compose */
+          else
+            compose=(CompositeOperator) ParseCommandOption(MagickComposeOptions,
+              MagickFalse,value);
 
           /* Get "clip-to-self" expert setting (false is normal) */
-          clip_to_self=IsStringTrue(GetImageOption(_image_info,
-                "compose:clip-to-self"));       /* if this is true */
+          value=GetImageOption(_image_info,"compose:clip-to-self");
+          if (value == (const char *) NULL)
+            clip_to_self=MagickTrue;
+          else
+            clip_to_self=IsStringTrue(GetImageOption(_image_info,
+              "compose:clip-to-self"));       /* if this is true */
           value=GetImageOption(_image_info,"compose:outside-overlay");
           if (value != (const char *) NULL) {   /* or this false */
             /* FUTURE: depreciate warning for "compose:outside-overlay"*/