diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index 1b67769..a688194 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -3554,7 +3554,6 @@
     *spread_image;
 
   MagickBooleanType
-    concurrent,
     status;
 
   MagickOffsetType
@@ -3569,6 +3568,9 @@
   ssize_t
     y;
 
+  unsigned long
+    key;
+
   /*
     Initialize spread image attributes.
   */
@@ -3594,12 +3596,12 @@
   progress=0;
   width=GetOptimalKernelWidth1D(radius,0.5);
   random_info=AcquireRandomInfoThreadSet();
-  concurrent=GetRandomSecretKey(random_info[0]) == ~0UL ? MagickTrue :
-    MagickFalse;
+  key=GetRandomSecretKey(random_info[0]);
   image_view=AcquireVirtualCacheView(image,exception);
   spread_view=AcquireAuthenticCacheView(spread_image,exception);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
-  #pragma omp parallel for schedule(static,8) shared(progress,status) omp_concurrent(concurrent)
+  #pragma omp parallel for schedule(static,8) shared(progress,status) \
+    if (key == ~0UL) num_threads(GetMagickResourceLimit(ThreadResource))
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {