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-04-21 20:40:12.000000000 +0100 +++ dbus-1.1.20/dbus/dbus-connection.c 2008-04-21 20:41:36.000000000 +0100 @@ -3399,6 +3399,8 @@ _dbus_connection_read_write_dispatch (DB { DBusDispatchStatus dstatus; dbus_bool_t no_progress_possible; + + dbus_connection_ref (connection); dstatus = dbus_connection_get_dispatch_status (connection); @@ -3439,6 +3441,7 @@ _dbus_connection_read_write_dispatch (DB else no_progress_possible = _dbus_connection_get_is_connected_unlocked (connection); CONNECTION_UNLOCK (connection); + dbus_connection_unref (connection); return !no_progress_possible; /* TRUE if we can make more progress */ }