diff --git a/README.rst b/README.rst
index ad2b58a..c39fdf0 100644
--- a/README.rst
+++ b/README.rst
@@ -135,6 +135,11 @@ version prior to the release of 1.0.
 ChangeLog
 =========
 
+Version 0.10.12
+---------------
+
+* fixed a bug in 0.10.11 where a dict changed whilst iterating it
+
 Version 0.10.11
 ---------------
 
diff --git a/server/controller.py b/server/controller.py
index 0372862..803d557 100644
--- a/server/controller.py
+++ b/server/controller.py
@@ -329,9 +329,10 @@ class Controller(util.LoggedClass):
                 self.cache_height = self.bp.db_height
                 self.header_cache.clear()
 
-            for session in self.sessions:
-                if isinstance(session, ElectrumX):
-                    await session.notify(self.bp.db_height, touched)
+            # Make a copy; self.sessions can change whilst await-ing
+            sessions = [s for s in self.sessions if isinstance(s, ElectrumX)]
+            for session in sessions:
+                await session.notify(self.bp.db_height, touched)
 
     def electrum_header(self, height):
         '''Return the binary header at the given height.'''
diff --git a/server/version.py b/server/version.py
index 0dc2bb7..ff7b40c 100644
--- a/server/version.py
+++ b/server/version.py
@@ -1 +1 @@
-VERSION = "ElectrumX 0.10.11"
+VERSION = "ElectrumX 0.10.12"