Blob Blame History Raw
--- dbus/connection.py.orig	2008-09-13 14:54:49.000000000 +0200
+++ dbus/connection.py	2008-09-13 14:55:01.000000000 +0200
@@ -484,7 +484,15 @@
                     deletions.append(match)
                 else:
                     new.append(match)
-            by_member[signal_name] = new
+
+            if new:
+                by_member[signal_name] = new
+            else:
+                del by_member[signal_name]
+                if not by_member:
+                    del by_interface[dbus_interface]
+                    if not by_interface:
+                        del self._signal_recipients_by_object_path[path]
         finally:
             self._signals_lock.release()