Avoid rare assertion for the -clone option.

diff --git a/MagickWand/convert.c b/MagickWand/convert.c
index 9a97e66..c288bd7 100644
--- a/MagickWand/convert.c
+++ b/MagickWand/convert.c
@@ -979,28 +979,30 @@
         if (LocaleCompare("clone",option+1) == 0)
           {
             Image
-              *clone_images;
-
-            clone_images=image;
+              *clone_images,
+              *clone_list;
+            
+            clone_list=CloneImageList(image,exception);
             if (k != 0)
-              clone_images=image_stack[k-1].image;
-            if (clone_images == (Image *) NULL)
-              ThrowConvertException(ImageError,"UnableToCloneImage",option);
+              clone_list=CloneImageList(image_stack[k-1].image,exception);
+            if (clone_list == (Image *) NULL)
+              ThrowConvertException(ImageError,"ImageSequenceRequired",option);
             FireImageStack(MagickTrue,MagickTrue,MagickTrue);
             if (*option == '+')
-              clone_images=CloneImages(clone_images,"-1",exception);
+              clone_images=CloneImages(clone_list,"-1",exception);
             else
-              {
+              { 
                 i++;
                 if (i == (ssize_t) argc)
                   ThrowConvertException(OptionError,"MissingArgument",option);
                 if (IsSceneGeometry(argv[i],MagickFalse) == MagickFalse)
                   ThrowConvertInvalidArgumentException(option,argv[i]);
-                clone_images=CloneImages(clone_images,argv[i],exception);
+                clone_images=CloneImages(clone_list,argv[i],exception);
               }
             if (clone_images == (Image *) NULL)
               ThrowConvertException(OptionError,"NoSuchImage",option);
             AppendImageStack(clone_images);
+            clone_list=DestroyImageList(clone_list);
             break;
           }
         if (LocaleCompare("clut",option+1) == 0)
diff --git a/MagickWand/montage.c b/MagickWand/montage.c
index 0790f28..a717c44 100644
--- a/MagickWand/montage.c
+++ b/MagickWand/montage.c
@@ -618,28 +618,30 @@
         if (LocaleCompare("clone",option+1) == 0)
           {
             Image
-              *clone_images;
-
-            clone_images=image;
+              *clone_images,
+              *clone_list;
+            
+            clone_list=CloneImageList(image,exception);
             if (k != 0)
-              clone_images=image_stack[k-1].image;
-            if (clone_images == (Image *) NULL)
-              ThrowMontageException(ImageError,"UnableToCloneImage",option);
+              clone_list=CloneImageList(image_stack[k-1].image,exception);
+            if (clone_list == (Image *) NULL)
+              ThrowMontageException(ImageError,"ImageSequenceRequired",option);
             FireImageStack(MagickTrue,MagickTrue,MagickTrue);
             if (*option == '+')
-              clone_images=CloneImages(clone_images,"-1",exception);
+              clone_images=CloneImages(clone_list,"-1",exception);
             else
-              {
+              { 
                 i++;
                 if (i == (ssize_t) argc)
                   ThrowMontageException(OptionError,"MissingArgument",option);
                 if (IsSceneGeometry(argv[i],MagickFalse) == MagickFalse)
                   ThrowMontageInvalidArgumentException(option,argv[i]);
-                clone_images=CloneImages(clone_images,argv[i],exception);
+                clone_images=CloneImages(clone_list,argv[i],exception);
               }
             if (clone_images == (Image *) NULL)
               ThrowMontageException(OptionError,"NoSuchImage",option);
             AppendImageStack(clone_images);
+            clone_list=DestroyImageList(clone_list);
             break;
           }
         if (LocaleCompare("coalesce",option+1) == 0)