diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRendererFilter.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRendererFilter.java
index bb2cdd2..2c0a32f 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRendererFilter.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRendererFilter.java
@@ -269,7 +269,7 @@
 			evalContext = modelService.getContainingContext(menuModel);
 		}
 		updateElementVisibility(menuModel, renderer, menuManager, evalContext,
-				true, true);
+				2, true);
 
 		// last thing to do, kill the event and update the menu manager
 		event.type = SWT.None;
@@ -306,7 +306,7 @@
 	 */
 	public static void updateElementVisibility(final MMenu menuModel,
 			MenuManagerRenderer renderer, MenuManager menuManager,
-			final IEclipseContext evalContext, boolean recurse,
+			final IEclipseContext evalContext, final int recurseLevel,
 			boolean updateEnablement) {
 		final ExpressionContext exprContext = new ExpressionContext(evalContext);
 		HashSet<ContributionRecord> records = new HashSet<ContributionRecord>();
@@ -320,12 +320,13 @@
 				MenuManagerRenderer.updateVisibility(menuManager, element,
 						exprContext);
 			}
-			if (recurse && element.isVisible() && element instanceof MMenu) {
+			if (recurseLevel > 0 && element.isVisible()
+					&& element instanceof MMenu) {
 				MMenu childMenu = (MMenu) element;
 				MenuManager childManager = renderer.getManager(childMenu);
 				if (childManager != null) {
 					updateElementVisibility(childMenu, renderer, childManager,
-							evalContext, false, false);
+							evalContext, recurseLevel - 1, false);
 				}
 			}
 
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java
index 5361293..9694016 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java
@@ -564,7 +564,7 @@
 							return;
 						}
 						MenuManagerRendererFilter.updateElementVisibility(mainMenu, renderer,
-								menuManager, windowContext.getActiveLeaf(), true, false);
+								menuManager, windowContext.getActiveLeaf(), 1, false);
 						menuManager.update(true);
 					} finally {
 						canUpdateMenus = true;
