diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6aebe3d0b99a965ed8eda175def48cf5f5cc21d7..059a590e1da2088b228ab4c09a30c57ad4d8ca96 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,3 +2,4 @@
 
 * changed schema's file to return a file-object
 * more `ThreadCollection` methods return self, permitting writing more conciser code
+* fix a bug in `ThreadCollection`
diff --git a/satella/__init__.py b/satella/__init__.py
index 919cebbcfbb290b65101f0d617fb102fc14eea64..30334bd3b8c61b692ae3a619885da431b431c871 100644
--- a/satella/__init__.py
+++ b/satella/__init__.py
@@ -1 +1 @@
-__version__ = '2.15.2a3'
+__version__ = '2.15.2'
diff --git a/satella/instrumentation/cpu_time/collector.py b/satella/instrumentation/cpu_time/collector.py
index beefea3f224376bac768a3c26975f7a5983cd69a..e34133076fd0f35d00ef72927eea2aef7f8cf0eb 100644
--- a/satella/instrumentation/cpu_time/collector.py
+++ b/satella/instrumentation/cpu_time/collector.py
@@ -56,7 +56,7 @@ class CPUProfileBuilderThread(threading.Thread):
     def recalculate(self) -> None:
         data = []
         calculate_occupancy_factor()    # as first values tend to be a bit wonky
-        for _ in range(self.window_size):
+        for _ in range(int(self.window_size)):
             time.sleep(1)
             data.append(calculate_occupancy_factor())
         percentiles = []