diff --git a/lib/workerpool.py b/lib/workerpool.py
index e09f473299a93543e44541bc94ce0a67575bdd59..e1985beabd2ed5ec39b669da7e36e268c9feadcc 100644
--- a/lib/workerpool.py
+++ b/lib/workerpool.py
@@ -108,6 +108,8 @@ class BaseWorker(threading.Thread, object):
           logging.debug("Done with task %r", self._current_task)
         except: # pylint: disable-msg=W0702
           logging.exception("Caught unhandled exception")
+
+        assert self._HasRunningTaskUnlocked()
       finally:
         # Notify pool
         pool._lock.acquire()
@@ -118,6 +120,8 @@ class BaseWorker(threading.Thread, object):
         finally:
           pool._lock.release()
 
+      assert not self._HasRunningTaskUnlocked()
+
     logging.debug("Terminates")
 
   def RunTask(self, *args):