diff --git a/src/app/mainapplication.cpp b/src/app/mainapplication.cpp
index 118f3e56fed26078ed8c4c7e71f848e4edebf5a8..e10e877d7d4d0a95b30f4da4111a0c34faec4f33 100644
--- a/src/app/mainapplication.cpp
+++ b/src/app/mainapplication.cpp
@@ -371,8 +371,13 @@ MainApplication::initSystray()
 {
     systemTray_->setIcon(QIcon(":/images/jami.svg"));
 
-    // Create a new menu
-    systemTrayMenu_.reset(new QMenu);
+    QMenu* menu {nullptr};
+    // If there was a previous menu, reuse it, otherwise create a new one.
+    if ((menu = systemTray_->contextMenu())) {
+        menu->clear();
+    } else {
+        menu = new QMenu;
+    }
 
     QString quitString;
 #ifdef Q_OS_WINDOWS
@@ -381,10 +386,10 @@ MainApplication::initSystray()
     quitString = tr("&Quit");
 #endif
 
-    QAction* quitAction = new QAction(quitString, systemTrayMenu_.get());
+    QAction* quitAction = new QAction(quitString, this);
     connect(quitAction, &QAction::triggered, this, &MainApplication::closeRequested);
 
-    QAction* restoreAction = new QAction(tr("&Show Jami"), systemTrayMenu_.get());
+    QAction* restoreAction = new QAction(tr("&Show Jami"), this);
     connect(restoreAction, &QAction::triggered, this, &MainApplication::restoreApp);
 
     connect(systemTray_,
@@ -395,20 +400,18 @@ MainApplication::initSystray()
 #ifdef Q_OS_WINDOWS
                     restoreApp();
 #elif !defined(Q_OS_MACOS)
-                QWindow* window = focusWindow();
-                if (window)
-                    window->close();
-                else
-                    restoreApp();
+                    QWindow* window = focusWindow();
+                    if (window)
+                        window->close();
+                    else
+                        restoreApp();
 #endif
                 }
             });
 
-    systemTrayMenu_->addAction(restoreAction);
-    systemTrayMenu_->addAction(quitAction);
-
-    // Set the new menu as the context menu
-    systemTray_->setContextMenu(systemTrayMenu_.get());
+    menu->addAction(restoreAction);
+    menu->addAction(quitAction);
+    systemTray_->setContextMenu(menu);
 
     systemTray_->show();
 }
diff --git a/src/app/mainapplication.h b/src/app/mainapplication.h
index a9625a33afc4259b20f6aaa78095451a06fecaf1..8f0f9952b16a9c11438b2a943ef348018601cb65 100644
--- a/src/app/mainapplication.h
+++ b/src/app/mainapplication.h
@@ -124,8 +124,5 @@ private:
 
     ScreenInfo screenInfo_;
 
-    // We will recreate the system tray menu when the user changes the language.
-    QScopedPointer<QMenu> systemTrayMenu_;
-
     bool isCleanupped;
 };