On Sat, Sep 24 2011, Michael Albinus wrote: > I've committed a fix for both problems, could you, please, check? The patch is not enough. It fixes the precise case I reported, but this fails now: (setq db (dbus-register-signal :session "some.service" "/org/gtk/Private/RemoteVolumeMonitor" "org.gtk.Private.RemoteVolumeMonitor" "VolumeAdded" 'identity)) (dbus-unregister-object db) Debugger entered--Lisp error: (dbus-error "Match rule has a key with no subsequent '=' character") dbus-call-method(:session "org.freedesktop.DBus" "/org/freedesktop/DBus" "org.freedesktop.DBus" "RemoveMatch" "Z") dbus-unregister-object(((:session "org.gtk.Private.RemoteVolumeMonitor" "VolumeAdded") ("some.service" "/org/gtk/Private/RemoteVolumeMonitor" identity))) eval((dbus-unregister-object db) nil) And, I've not tested, but AFAICS you added a check "(when service …" before running ReleaseName. Just not that you must not do a ReleaseName if you are unregistering a match, and I've the feeling that this code will do. > Reading the code, `dbus-registered-objects-table' has become an > unreadable format. Maybe we shall redesign the format, and move most of > the functionality from dbusbind.c to dbus.el. But that's something for > after-the-release. I totally agree with that. It needs to be reworked. :) -- Julien Danjou