diff --git a/product/CMFActivity/ActivityTool.py b/product/CMFActivity/ActivityTool.py
index cf9a355e3d71ef73c4e7bf3cb09db1241c5d8cea..5bd334da51aeef774a2111352bbab8a60e3a9d29 100755
--- a/product/CMFActivity/ActivityTool.py
+++ b/product/CMFActivity/ActivityTool.py
@@ -473,14 +473,13 @@ class ActivityTool (Folder, UniqueObject):
       # else, increase the number of active_threads and continue
       tic_lock.acquire()
       too_many_threads = (active_threads >= max_active_threads)
-      if not too_many_threads:
+      if not too_many_threads or force:
         active_threads += 1
+      else:
+        tic_lock.release()
+        raise RuntimeError, 'Too many threads'
       tic_lock.release()
 
-      if too_many_threads :
-        if not force:
-          raise RuntimeError, 'Too many threads'
-
       # Initialize if needed
       if not is_initialized: self.initialize()