diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 28efe433f5..7d093d2b05 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -4799,6 +4799,8 @@ const DisplayPlugin * Application::getActiveDisplayPlugin() const {
     return ((Application*)this)->getActiveDisplayPlugin();
 }
 
+static QVector<QPair<QString, QString>> _currentDisplayPluginActions;
+
 void Application::updateDisplayMode() {
     auto menu = Menu::getInstance();
     auto displayPlugins = getDisplayPlugins();
@@ -4822,6 +4824,14 @@ void Application::updateDisplayMode() {
             oldDisplayPlugin->removeEventFilter(qApp);
         }
 
+        if (!_currentDisplayPluginActions.isEmpty()) {
+            auto menu = Menu::getInstance();
+            foreach(auto itemInfo, _currentDisplayPluginActions) {
+                menu->removeMenuItem(itemInfo.first, itemInfo.second);
+            }
+            _currentDisplayPluginActions.clear();
+        }
+
         if (newDisplayPlugin) {
             _offscreenContext->makeCurrent();
             newDisplayPlugin->activate(this);
@@ -4850,8 +4860,14 @@ void Application::updateDisplayMode() {
     Q_ASSERT_X(_displayPlugin, "Application::updateDisplayMode", "could not find an activated display plugin");
 }
 
-void Application::addMenuItem(const QString& path, std::function<void()> onClicked, bool checkable, bool checked, const QString& groupName) {
-
+void Application::addMenuItem(const QString& path, const QString& name, std::function<void()> onClicked, bool checkable, bool checked, const QString& groupName) {
+    auto menu = Menu::getInstance();
+    MenuWrapper* parentItem = menu->getMenu(path);
+    QAction* action = parentItem->addAction(name);
+    connect(action, &QAction::triggered, [=] {
+        onClicked();
+    });
+    _currentDisplayPluginActions.push_back({ path, name });
 }
 
 GlWindow* Application::getVisibleWindow() {
diff --git a/interface/src/Application.h b/interface/src/Application.h
index 0aef17a357..4ee4eceded 100644
--- a/interface/src/Application.h
+++ b/interface/src/Application.h
@@ -296,7 +296,7 @@ public:
     virtual qreal getDevicePixelRatio();
 
     // Plugin container support
-    virtual void addMenuItem(const QString& path, std::function<void()> onClicked, bool checkable, bool checked, const QString& groupName);
+    virtual void addMenuItem(const QString& path, const QString& name, std::function<void()> onClicked, bool checkable, bool checked, const QString& groupName);
     virtual GlWindow* getVisibleWindow();
 
     private:
diff --git a/libraries/plugins/src/plugins/PluginContainer.h b/libraries/plugins/src/plugins/PluginContainer.h
index 687a06567d..937c4e99e4 100644
--- a/libraries/plugins/src/plugins/PluginContainer.h
+++ b/libraries/plugins/src/plugins/PluginContainer.h
@@ -6,6 +6,6 @@ class GlWindow;
 
 class PluginContainer {
 public:
-    virtual void addMenuItem(const QString& path, std::function<void()> onClicked, bool checkable = false, bool checked = false, const QString& groupName = "") = 0;
+    virtual void addMenuItem(const QString& path, const QString& name, std::function<void()> onClicked, bool checkable = false, bool checked = false, const QString& groupName = "") = 0;
     virtual GlWindow* getVisibleWindow() = 0;
 };