diff --git a/extensions/alternative-status-menu/extension.js b/extensions/alternative-status-menu/extension.js index 404e47d3..9b04ea68 100644 --- a/extensions/alternative-status-menu/extension.js +++ b/extensions/alternative-status-menu/extension.js @@ -124,7 +124,14 @@ function enable() { function disable() { // not guarranteed to work, if more extensions operate in the same place let statusMenu = Main.panel._statusArea.userMenu; + + // HACK! disconnect signals to avoid references to destroyed objects + let imstatusitem = statusMenu.menu._getMenuItems()[0]; + imstatusitem._user.disconnect(imstatusitem._userLoadedId); + imstatusitem._user.disconnect(imstatusitem._userChangedId); + statusMenu.menu.removeAll(); + statusMenu._createSubMenu(); reset(statusMenu); }