diff options
-rw-r--r-- | src/buddy.py | 2 | ||||
-rw-r--r-- | src/presenceservice.py | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/buddy.py b/src/buddy.py index 4528c6b..3945aed 100644 --- a/src/buddy.py +++ b/src/buddy.py @@ -335,6 +335,8 @@ class Buddy(ExportedGObject): # the Owner can't disappear - that would be silly if not self._handles and not self._owner: self.emit('disappeared') + # Stop exporting a dbus service + self.remove_from_connection() @dbus.service.signal(_BUDDY_INTERFACE, signature='sou') def TelepathyHandleRemoved(self, tp_conn_name, tp_conn_path, handle): diff --git a/src/presenceservice.py b/src/presenceservice.py index 9c57062..0cc1efb 100644 --- a/src/presenceservice.py +++ b/src/presenceservice.py @@ -416,6 +416,7 @@ class PresenceService(ExportedGObject): def _buddy_disappeared_cb(self, buddy): if buddy.props.valid: self._buddy_validity_changed_cb(buddy, False) + self._buddies.pop(buddy.props.objid, None) def _contacts_offline(self, tp, handles): for handle in handles: |