diff --git a/greentest/test__pool.py b/greentest/test__pool.py
index 31496cab8af0c432f761b7d6b52795b035166f9b..c341e62e8f5a8d4724080c20d101b1b0c6774e52 100644
--- a/greentest/test__pool.py
+++ b/greentest/test__pool.py
@@ -286,8 +286,10 @@ class TestJoinSleep(greentest.GenericWaitTestCase):
     def wait(self, timeout):
         p = pool.Pool()
         g = p.spawn(gevent.sleep, 10)
-        p.join(timeout=timeout)
-        g.kill()
+        try:
+            p.join(timeout=timeout)
+        finally:
+            g.kill()
 
 
 class TestJoinSleep_raise_error(greentest.GenericWaitTestCase):
@@ -295,8 +297,10 @@ class TestJoinSleep_raise_error(greentest.GenericWaitTestCase):
     def wait(self, timeout):
         p = pool.Pool()
         g = p.spawn(gevent.sleep, 10)
-        p.join(timeout=timeout, raise_error=True)
-        g.kill()
+        try:
+            p.join(timeout=timeout, raise_error=True)
+        finally:
+            g.kill()
 
 
 class TestJoinEmpty(greentest.TestCase):