diff --git a/coolamqp/clustering/cluster.py b/coolamqp/clustering/cluster.py
index 9cfe3a37e35254370bf3e76052a0e975451d8444..35be5bbb8a53e929c24f39fb51f5a9be492d1462 100644
--- a/coolamqp/clustering/cluster.py
+++ b/coolamqp/clustering/cluster.py
@@ -76,6 +76,7 @@ class Cluster(object):
             except ImportError:
                 raise RuntimeError('tracer given, but opentracing is not installed!')
 
+        self.started = False
         self.tracer = tracer
         self.name = name or 'CoolAMQP'
         self.node, = nodes
@@ -282,13 +283,9 @@ class Cluster(object):
         :raise RuntimeError: called more than once
         :raise ConnectionDead: failed to connect within timeout
         """
-
-        try:
-            self.listener
-        except AttributeError:
-            pass
-        else:
+        if self.started:
             raise RuntimeError(u'[%s] This was already called!' % (self.name,))
+        self.started = True
 
         self.listener = ListenerThread(name=self.name)