diff --git a/src/ZEO/zrpc/client.py b/src/ZEO/zrpc/client.py
index 68464d25672ca7431b7ccd4fb0cbd3e40436541a..6a5d8d2d28080f6cee041abef71d54a3f76cd4a8 100644
--- a/src/ZEO/zrpc/client.py
+++ b/src/ZEO/zrpc/client.py
@@ -87,7 +87,8 @@ class ConnectionManager:
             if self._thread is not None:
                 # XXX race on _thread
                 self._thread.stop()
-                self._thread.join()
+                self._thread.join(30)
+                assert not self._thread.isAlive()
         finally:
             self._connect_lock.release()
         if self.connection: