diff --git a/src/thread_private_spike_store.hpp b/src/thread_private_spike_store.hpp
index 1e14ab104619a42b8aa9f014172bb5716576017c..3f320fdd93709c622696e889f80c16588eb5ad66 100644
--- a/src/thread_private_spike_store.hpp
+++ b/src/thread_private_spike_store.hpp
@@ -69,6 +69,18 @@ private :
         threading::enumerable_thread_specific<std::vector<spike_type>>;
 
     local_spike_store_type buffers_;
+
+public :
+    using iterator = typename local_spike_store_type::iterator;
+    using const_iterator = typename local_spike_store_type::const_iterator;
+
+    // make the container iterable
+    // we iterate of threads, not individual containers
+
+    iterator begin() { return buffers_.begin(); }
+    iterator end() { return buffers_.begin(); }
+    const_iterator begin() const { return buffers_.begin(); }
+    const_iterator end() const { return buffers_.begin(); }
 };
 
 } // namespace mc
diff --git a/src/threading/serial.hpp b/src/threading/serial.hpp
index c18d4800e3c457e140f0fe6d2ca671aa6ccac241..da2740a6b7bb8909f0c4ded32262f157cef7541d 100644
--- a/src/threading/serial.hpp
+++ b/src/threading/serial.hpp
@@ -19,10 +19,10 @@ namespace threading {
 template <typename T>
 class enumerable_thread_specific {
     std::array<T, 1> data;
-    using iterator_type = typename std::array<T, 1>::iterator;
-    using const_iterator_type = typename std::array<T, 1>::const_iterator;
 
-    public :
+public :
+    using iterator = typename std::array<T, 1>::iterator;
+    using const_iterator = typename std::array<T, 1>::const_iterator;
 
     enumerable_thread_specific() = default;
 
@@ -39,14 +39,14 @@ class enumerable_thread_specific {
 
     auto size() -> decltype(data.size()) const { return data.size(); }
 
-    iterator_type begin() { return data.begin(); }
-    iterator_type end()   { return data.end(); }
+    iterator begin() { return data.begin(); }
+    iterator end()   { return data.end(); }
 
-    const_iterator_type begin() const { return data.begin(); }
-    const_iterator_type end()   const { return data.end(); }
+    const_iterator begin() const { return data.begin(); }
+    const_iterator end()   const { return data.end(); }
 
-    const_iterator_type cbegin() const { return data.cbegin(); }
-    const_iterator_type cend()   const { return data.cend(); }
+    const_iterator cbegin() const { return data.cbegin(); }
+    const_iterator cend()   const { return data.cend(); }
 };