diff --git a/coolamqp/clustering/cluster.py b/coolamqp/clustering/cluster.py
index ba120ff63ea16ac6218512bf8a03acb2188ac44e..5d77c96d3549ef9ccfe53e45b7cf1dedc58d7ae8 100644
--- a/coolamqp/clustering/cluster.py
+++ b/coolamqp/clustering/cluster.py
@@ -178,7 +178,7 @@ class Cluster(object):
         if self.on_fail is not None:
             self.snr.on_fail.add(
                 (lambda snr, of: lambda: of() if not snr.terminating else None)(
-                    self.snr, self.on_fail)
+                    self.listener, self.on_fail)
             )
 
         # Spawn a transactional publisher and a noack publisher
diff --git a/tests/test_clustering/test_things.py b/tests/test_clustering/test_things.py
index 4db5069e444dbdb08d0bb198c780a81c265adeb9..d5a04e6dbe3c2ed5cf3e9e88e717a5ff459682ea 100644
--- a/tests/test_clustering/test_things.py
+++ b/tests/test_clustering/test_things.py
@@ -25,8 +25,7 @@ class TestConnecting(unittest.TestCase):
     def test_on_clean(self):
         q = {'failed': False}
         c = Cluster([NODE], on_fail=lambda: q.update(failed=True))
-        c.start()
-        time.sleep(5)
+        c.start(wait=True)
         c.shutdown()
         time.sleep(5)
         self.assertFalse(q['failed'])