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"*/