Binary files dbus-1.1.20~/dbus/.dbus-connection.c.swp and dbus-1.1.20/dbus/.dbus-connection.c.swp differ diff -ruNp dbus-1.1.20~/dbus/dbus-connection.c dbus-1.1.20/dbus/dbus-connection.c --- dbus-1.1.20~/dbus/dbus-connection.c 2008-02-26 16:02:27.000000000 +0000 +++ dbus-1.1.20/dbus/dbus-connection.c 2008-04-17 23:59:35.000000000 +0100 @@ -1671,21 +1671,26 @@ connection_forget_shared_unlocked (DBusC if (!connection->shareable) return; + _DBUS_LOCK (shared_connections); + if (connection->server_guid != NULL) { _dbus_verbose ("dropping connection to %s out of the shared table\n", connection->server_guid); - _DBUS_LOCK (shared_connections); - if (!_dbus_hash_table_remove_string (shared_connections, connection->server_guid)) _dbus_assert_not_reached ("connection was not in the shared table"); dbus_free (connection->server_guid); connection->server_guid = NULL; - _DBUS_UNLOCK (shared_connections); } + else + { + _dbus_list_remove (&shared_connections_no_guid, connection); + } + + _DBUS_UNLOCK (shared_connections); /* remove our reference held on all shareable connections */ _dbus_connection_unref_unlocked (connection);