diff --git a/packages/app-shell/src/app-shell.js b/packages/app-shell/src/app-shell.js
index b3f9fe6f3d5d85e385324fa69cb1efa6b0b43ad9..5b64858768581e06812b51ea8d26b4afa34cafa6 100644
--- a/packages/app-shell/src/app-shell.js
+++ b/packages/app-shell/src/app-shell.js
@@ -68,6 +68,9 @@ export class AppShell extends ScopedElementsMixin(DBPLitElement) {
         this._attrObserver = new MutationObserver(this.onAttributeObserved);
         this._onShowActivityEvent = this._onShowActivityEvent.bind(this);
 
+        this.boundCloseMenuHandler = this.hideMenu.bind(this);
+        this.initateOpenMenu = false;
+
         this.auth = {};
     }
 
@@ -475,9 +478,22 @@ export class AppShell extends ScopedElementsMixin(DBPLitElement) {
         if (chevron !== null) {
             chevron.name = menu.classList.contains('hidden') ? 'chevron-down' : 'chevron-up';
         }
+
+        if (!menu.classList.contains('hidden')) {
+            document.addEventListener('click', this.boundCloseMenuHandler);
+            this.initateOpenMenu = true;
+        }
+        else {
+            document.removeEventListener('click', this.boundCloseMenuHandler);
+            menu.removeAttribute('style');
+        }
     }
 
     hideMenu() {
+        if (this.initateOpenMenu) {
+            this.initateOpenMenu = false;
+            return;
+        }
         const menu = this.shadowRoot.querySelector("ul.menu");
         if (menu && !menu.classList.contains('hidden'))
             this.toggleMenu();