diff --git a/CHANGELOG.md b/CHANGELOG.md
index 690db17363e3625f36471bc652a655ce8cf6df3b..b85395cf0c0082ea66abc1fd75977454ff434e25 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
 # v1.2.5
 
-* _TBA_
+* bugfix: fixed `log_frames` in `Cluster`
 
 # v1.2.4
 
diff --git a/coolamqp/__init__.py b/coolamqp/__init__.py
index dd3dbb692c9141738ee10353dcd00b6c64a8bc69..09964d630dd1cc3c4cf540190af0598b98ad2409 100644
--- a/coolamqp/__init__.py
+++ b/coolamqp/__init__.py
@@ -1 +1 @@
-__version__ = '1.2.5_a1'
+__version__ = '1.2.5'
diff --git a/coolamqp/clustering/cluster.py b/coolamqp/clustering/cluster.py
index 598e5f1687c73de22dc87711826695cb9f5e74d8..9cfe3a37e35254370bf3e76052a0e975451d8444 100644
--- a/coolamqp/clustering/cluster.py
+++ b/coolamqp/clustering/cluster.py
@@ -83,6 +83,10 @@ class Cluster(object):
         self.log_frames = log_frames
         self.on_blocked = on_blocked
         self.connected = False
+        self.listener = None
+        self.attache_group = None
+        self.events = None
+        self.snr = None     # type: SingleNodeReconnector
 
         if on_fail is not None:
             def decorated():
@@ -265,7 +269,7 @@ class Cluster(object):
             raise NotImplementedError(
                 u'Sorry, this functionality is not yet implemented!')
 
-    def start(self, wait=True, timeout=10.0, log_frames=None):  # type: (bool, float, bool) -> None
+    def start(self, wait=True, timeout=10.0):  # type: (bool, float, bool) -> None
         """
         Connect to broker. Initialize Cluster.
 
@@ -277,7 +281,6 @@ class Cluster(object):
                         ConnectionDead error will be raised
         :raise RuntimeError: called more than once
         :raise ConnectionDead: failed to connect within timeout
-        :param log_frames: whether to keep a log of sent/received frames in self.log_frames
         """
 
         try:
@@ -295,7 +298,7 @@ class Cluster(object):
 
         self.snr = SingleNodeReconnector(self.node, self.attache_group,
                                          self.listener, self.extra_properties,
-                                         log_frames, self.name)
+                                         self.log_frames, self.name)
         self.snr.on_fail.add(lambda: self.events.put_nowait(ConnectionLost()))
         if self.on_fail is not None:
             self.snr.on_fail.add(self.on_fail)
diff --git a/docker-compose.yml b/docker-compose.yml
index e525a5de27db5e9653e0fae2840627b7485a95ad..812b4ef3071816f7789796478b2bf24b26c0e096 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -2,7 +2,7 @@ version: '3.2'
 services:
   amqp:
     image: rabbitmq
-  tests:
+  unittest:
     build:
       context: .
       dockerfile: tests/Dockerfile
diff --git a/tests/Dockerfile b/tests/Dockerfile
index f61ab622b61833268cba8c850e55affe056e7db3..e0ad63d4ba3c85ccbb0db798d43af5f069da7618 100644
--- a/tests/Dockerfile
+++ b/tests/Dockerfile
@@ -16,5 +16,5 @@ ENV AMQP_HOST=amqp
 # for those pesky builds on Windows
 RUN chmod -R ugo-x /coolamqp
 
-CMD python setup.py test
+CMD ["python", "setup.py", "test"]
 
diff --git a/tests/test_clustering/test_log_frames.py b/tests/test_clustering/test_log_frames.py
new file mode 100644
index 0000000000000000000000000000000000000000..02c4c6c518180b448f4c8a844304522558ff78a8
--- /dev/null
+++ b/tests/test_clustering/test_log_frames.py
@@ -0,0 +1,35 @@
+# coding=UTF-8
+"""
+Test things
+"""
+from __future__ import print_function, absolute_import, division
+
+import logging
+import os
+import time
+import unittest
+
+from coolamqp.clustering import Cluster
+from coolamqp.objects import NodeDefinition, FrameLogger
+
+NODE = NodeDefinition(os.environ.get('AMQP_HOST', '127.0.0.1'), 'guest', 'guest', heartbeat=20)
+logging.basicConfig(level=logging.DEBUG)
+
+
+class TestLogFrames(unittest.TestCase):
+    def test_log_frames_works(self):
+        class LogFrames(FrameLogger):
+            def __init__(self):
+                self.received_frames = 0
+
+            def on_frame(self, timestamp, frame, direction):
+                self.received_frames += 1
+
+        frame_logger = LogFrames()
+        self.c = Cluster([NODE], log_frames=frame_logger)
+        self.c.start()
+        self.assertGreaterEqual(frame_logger.received_frames, 3)
+
+    def tearDown(self):
+        self.c.shutdown()
+
diff --git a/tests/test_clustering/test_things.py b/tests/test_clustering/test_things.py
index 3369eb20d324948fdcdc5d654dda2d16911ff759..5c7878a29269826096d66d9dd6c734dbb89ff458 100644
--- a/tests/test_clustering/test_things.py
+++ b/tests/test_clustering/test_things.py
@@ -63,4 +63,4 @@ class TestConnecting(unittest.TestCase):
     def test_amqpconnstring_port(self):
         node = NodeDefinition('amqp://lol:lol@lol:4123/vhost')
 
-        self.assertEquals(node.port, 4123)
+        self.assertEqual(node.port, 4123)