diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/IMenuServiceWorkaround.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/IMenuServiceWorkaround.java
new file mode 100644
index 0000000..eb636b8
--- /dev/null
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/IMenuServiceWorkaround.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 20118 Andrey Loskutov.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Andrey Loskutov <loskutov@gmx.de> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.internal;
+
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+
+/**
+ * Workaround for bug 537046
+ */
+public interface IMenuServiceWorkaround {
+
+	/**
+	 * Disposes contributions created by service for given part. See bug 537046.
+	 *
+	 * @param site
+	 * @param part
+	 */
+	void clearContributions(PartSite site, MPart part);
+
+}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityView.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityView.java
index 117aff8..1ea1dc0 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityView.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityView.java
@@ -43,11 +43,11 @@
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.handlers.IHandlerService;
 import org.eclipse.ui.internal.ActionDescriptor;
+import org.eclipse.ui.internal.IMenuServiceWorkaround;
 import org.eclipse.ui.internal.PartSite;
 import org.eclipse.ui.internal.ViewActionBuilder;
 import org.eclipse.ui.internal.ViewReference;
 import org.eclipse.ui.internal.WorkbenchPartReference;
-import org.eclipse.ui.internal.menus.WorkbenchMenuService;
 import org.eclipse.ui.internal.registry.ViewDescriptor;
 import org.eclipse.ui.internal.testing.ContributionInfoMessages;
 import org.eclipse.ui.menus.IMenuService;
@@ -277,10 +277,10 @@
 
 	private static void clearMenuServiceContributions(PartSite site, MPart part) {
 		IMenuService menuService = site.getService(IMenuService.class);
-		if (!(menuService instanceof WorkbenchMenuService)) {
+		if (!(menuService instanceof IMenuServiceWorkaround)) {
 			return;
 		}
-		WorkbenchMenuService service = (WorkbenchMenuService) menuService;
+		IMenuServiceWorkaround service = (IMenuServiceWorkaround) menuService;
 		service.clearContributions(site, part);
 	}
 
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/menus/SlaveMenuService.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/menus/SlaveMenuService.java
index 8debb38..a8b5f4c 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/menus/SlaveMenuService.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/menus/SlaveMenuService.java
@@ -13,8 +13,11 @@
 
 import org.eclipse.core.expressions.IEvaluationContext;
 import org.eclipse.e4.ui.model.application.MApplicationElement;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.jface.action.ContributionManager;
 import org.eclipse.ui.ISourceProvider;
+import org.eclipse.ui.internal.IMenuServiceWorkaround;
+import org.eclipse.ui.internal.PartSite;
 import org.eclipse.ui.menus.AbstractContributionFactory;
 import org.eclipse.ui.menus.IMenuService;
 
@@ -22,7 +25,7 @@
  * @since 3.105
  *
  */
-public class SlaveMenuService implements IMenuService {
+public class SlaveMenuService implements IMenuService, IMenuServiceWorkaround {
 	private IMenuService parentService;
 
 	/**
@@ -100,6 +103,20 @@
 	}
 
 	/**
+	 * Disposes contributions created by service for given part. See bug 537046.
+	 *
+	 * @param site
+	 * @param part
+	 */
+	@Override
+	public void clearContributions(PartSite site, MPart part) {
+		if (parentService instanceof IMenuServiceWorkaround) {
+			IMenuServiceWorkaround service = (IMenuServiceWorkaround) parentService;
+			service.clearContributions(site, part);
+		}
+	}
+
+	/**
 	 * @return
 	 * @see org.eclipse.ui.menus.IMenuService#getCurrentState()
 	 */
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/menus/WorkbenchMenuService.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/menus/WorkbenchMenuService.java
index 4b831af..5c8c317 100755
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/menus/WorkbenchMenuService.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/menus/WorkbenchMenuService.java
@@ -55,6 +55,7 @@
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.internal.IMenuServiceWorkaround;
 import org.eclipse.ui.internal.PartSite;
 import org.eclipse.ui.internal.WorkbenchPlugin;
 import org.eclipse.ui.internal.WorkbenchWindow;
@@ -68,7 +69,7 @@
  * @since 3.5
  *
  */
-public class WorkbenchMenuService implements IMenuService {
+public class WorkbenchMenuService implements IMenuService, IMenuServiceWorkaround {
 
 	private static final String POPULATED_TOOL_BARS = "populatedToolBars"; //$NON-NLS-1$
 	private static final String POPULATED_MENUS = "populatedMenus"; //$NON-NLS-1$
@@ -481,6 +482,7 @@
 	 * @param site
 	 * @param part
 	 */
+	@Override
 	public void clearContributions(PartSite site, MPart part) {
 		List<MToolBar> toolbars = getContributedToolbars(part);
 		IEclipseContext context = part.getContext();
