diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.cpp b/src/plugins/coreplugin/actionmanager/actionmanager.cpp
index a51bb7820124fa9ca6158a932d6944582ab377ff..91289fb1c9abdfb4afaac469a88cc418a8ac35f1 100644
--- a/src/plugins/coreplugin/actionmanager/actionmanager.cpp
+++ b/src/plugins/coreplugin/actionmanager/actionmanager.cpp
@@ -367,6 +367,8 @@ Command *ActionManagerPrivate::registerOverridableAction(QAction *action, const
         baseAction->setParent(m_mainWnd);
 #ifdef Q_WS_MAC
         baseAction->setIconVisibleInMenu(false);
+#else
+        baseAction->setIconVisibleInMenu(action->isIconVisibleInMenu());
 #endif
         a->setAction(baseAction);
         m_mainWnd->addAction(baseAction);
diff --git a/src/plugins/coreplugin/actionmanager/command.cpp b/src/plugins/coreplugin/actionmanager/command.cpp
index ca584f8095805ea89b56f8e39208713777ed96b1..8a95b974653e0c8cd61d90921df79eacdc714e5c 100644
--- a/src/plugins/coreplugin/actionmanager/command.cpp
+++ b/src/plugins/coreplugin/actionmanager/command.cpp
@@ -493,6 +493,9 @@ void Action::actionChanged()
     if (hasAttribute(CA_UpdateIcon)) {
         m_action->setIcon(m_currentAction->icon());
         m_action->setIconText(m_currentAction->iconText());
+#ifndef Q_WS_MAC
+        m_action->setIconVisibleInMenu(m_currentAction->isIconVisibleInMenu());
+#endif
     }
     if (hasAttribute(CA_UpdateText)) {
         m_action->setText(m_currentAction->text());