946b35a
diff -up dbus-glib-0.73/dbus/dbus-gproxy.c.foo dbus-glib-0.73/dbus/dbus-gproxy.c
946b35a
--- dbus-glib-0.73/dbus/dbus-gproxy.c.foo	2007-02-08 20:59:39.000000000 -0500
946b35a
+++ dbus-glib-0.73/dbus/dbus-gproxy.c	2007-09-24 14:54:39.000000000 -0400
946b35a
@@ -1232,8 +1235,15 @@ dbus_g_proxy_manager_filter (DBusConnect
946b35a
 						  dbus_message_get_interface (message));
946b35a
 
946b35a
 	      owner_list = g_hash_table_lookup (manager->proxy_lists, tri);
946b35a
-	      if (owner_list != NULL)
946b35a
-		full_list = g_slist_concat (full_list, g_slist_copy (owner_list->proxies));
946b35a
+	      if (owner_list != NULL) {
946b35a
+	        GSList *elt;
946b35a
+
946b35a
+	        /* Ignore duplicates when adding to full_list */
946b35a
+	        for (elt = owner_list->proxies; elt; elt = g_slist_next (elt)) {
946b35a
+	          if (!g_slist_find (full_list, elt->data))
946b35a
+	            full_list = g_slist_append (full_list, elt->data);
946b35a
+	        }
946b35a
+	      }
946b35a
 	      g_free (tri);
946b35a
 	    }
946b35a
 	}
946b35a