diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java index 6ae80f2e956e..408c1f962427 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java @@ -1455,6 +1455,7 @@ public class ActionManagerImpl extends ActionManagerEx implements Disposable { } AnAction oldAction = newAction instanceof OverridingAction ? getAction(actionId) : getActionOrStub(actionId); + int oldIndex = idToIndex.getOrDefault(actionId, -1); // Valid indices >= 0 if (oldAction != null) { if (newAction instanceof OverridingAction) { myBaseActions.put((OverridingAction)newAction, oldAction); @@ -1473,6 +1474,9 @@ public class ActionManagerImpl extends ActionManagerEx implements Disposable { unregisterAction(actionId, false); } registerAction(actionId, newAction, pluginId); + if (oldIndex >= 0) { + idToIndex.put(actionId, oldIndex); + } return oldAction; }