diff --git a/MagickWand/magick-wand.c b/MagickWand/magick-wand.c
index eed19b9..0bc0a85 100644
--- a/MagickWand/magick-wand.c
+++ b/MagickWand/magick-wand.c
@@ -186,13 +186,15 @@
   assert(wand->signature == WandSignature);
   if (wand->debug != MagickFalse)
     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  wand->images=DestroyImageList(wand->images);
   if (wand->quantize_info != (QuantizeInfo *) NULL )
     wand->quantize_info=DestroyQuantizeInfo(wand->quantize_info);
   if (wand->draw_info != (DrawInfo *) NULL )
     wand->draw_info=DestroyDrawInfo(wand->draw_info);
-  wand->image_info=DestroyImageInfo(wand->image_info);
-  wand->images=DestroyImageList(wand->images);
-  wand->exception=DestroyExceptionInfo(wand->exception);
+  if (wand->image_info != (ImageInfo *) NULL )
+    wand->image_info=DestroyImageInfo(wand->image_info);
+  if (wand->exception != (ExceptionInfo *) NULL )
+    wand->exception=DestroyExceptionInfo(wand->exception);
   RelinquishWandId(wand->id);
   wand->signature=(~WandSignature);
   wand=(MagickWand *) RelinquishMagickMemory(wand);