diff --git a/magick/delegate.c b/magick/delegate.c
index 9706f2d..3171f13 100644
--- a/magick/delegate.c
+++ b/magick/delegate.c
@@ -708,7 +708,8 @@
   if ((delegate_list == (LinkedListInfo *) NULL) &&
       (instantiate_delegate == MagickFalse))
     {
-      AcquireSemaphoreInfo(&delegate_semaphore);
+      if (delegate_semaphore == (SemaphoreInfo *) NULL)
+        AcquireSemaphoreInfo(&delegate_semaphore);
       LockSemaphoreInfo(delegate_semaphore);
       if ((delegate_list == (LinkedListInfo *) NULL) &&
           (instantiate_delegate == MagickFalse))