diff --git a/slapos/recipe/erp5.recipe.testnode/setup.py b/slapos/recipe/erp5.recipe.testnode/setup.py
index a157b45b21bb316dce1839892687dd7a681a1417..89966d83746c0f9ba882c2cf81420b3b7fdad36b 100644
--- a/slapos/recipe/erp5.recipe.testnode/setup.py
+++ b/slapos/recipe/erp5.recipe.testnode/setup.py
@@ -1,7 +1,7 @@
 from setuptools import setup, find_packages
 
 name = "erp5.recipe.testnode"
-version = '1.0.19'
+version = '1.0.21'
 
 def read(name):
   return open(name).read()
diff --git a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/testnode.py b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/testnode.py
index 7153dd9f5889ec1ebad5e6f4c97e401fcc006001..1c2c2723683293ae5919cf33b6a7f2561082a108 100644
--- a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/testnode.py
+++ b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/testnode.py
@@ -99,10 +99,14 @@ repository = %(repository_path)s
       # kill processes from previous loop if any
       for pgpid in process_group_pid_set:
         try:
-          process_group_pid_set.remove(pgpid)
           os.killpg(pgpid, signal.SIGTERM)
         except:
           pass
+      while True:
+        try:
+          process_group_pid_set.pop()
+        except KeyError:
+          break
       # Make sure we have local repository
       if not os.path.exists(repository_path):
         parameter_list = [config['git_binary'], 'clone',