diff --git a/magick/cache.c b/magick/cache.c
index 64e360b..0af1ded 100644
--- a/magick/cache.c
+++ b/magick/cache.c
@@ -201,8 +201,8 @@
if (cache_info->nexus_info == (NexusInfo **) NULL)
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
GetPixelCacheMethods(&cache_info->methods);
- cache_info->reference_count=1;
cache_info->semaphore=AllocateSemaphoreInfo();
+ cache_info->reference_count=1;
cache_info->disk_semaphore=AllocateSemaphoreInfo();
cache_info->debug=IsEventLogging();
cache_info->signature=MagickSignature;
@@ -2215,6 +2215,8 @@
Clone pixel cache.
*/
clone_image=(*image);
+ clone_image.semaphore=AllocateSemaphoreInfo();
+ clone_image.reference_count=1;
clone_image.cache=ClonePixelCache(cache_info);
clone_info=(CacheInfo *) clone_image.cache;
status=ClonePixelCacheNexus(cache_info,clone_info,exception);
@@ -2233,6 +2235,7 @@
}
}
}
+ DestroySemaphoreInfo(&clone_image.semaphore);
}
UnlockSemaphoreInfo(cache_info->semaphore);
}