v3052d
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/MenuItem.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/MenuItem.java
index 5c512cc..fde080c 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/MenuItem.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/MenuItem.java
@@ -263,7 +263,6 @@
 }
 
 void fixMenus (Decorations newParent) {
-	if (menu != null) menu.fixMenus (newParent);
 	int oldId = this.id;
 	parent.parent.remove (this);
 	newParent.add (this);
@@ -282,6 +281,7 @@
 		info.wID = info.dwItemData = id;
 		OS.SetMenuItemInfo (hMenu, oldId, false, info);
 	}
+	if (menu != null) menu.fixMenus (newParent);
 }
 
 /**