diff -ru2 include_original/atlapp.h include/atlapp.h
--- include_original/atlapp.h	2002-03-29 04:26:36.000000000 +0000
+++ include/atlapp.h	2003-04-16 15:45:42.000000000 +0100
@@ -178,4 +178,17 @@
 }
 
+// NT4 MENUITEMINFO Fix
+inline size_t sizeofMENUITEMINFO()
+{
+	static bool bChecked = false;
+	static size_t theSize = 0;
+	if(!bChecked)
+	{
+		theSize = ( AtlIsOldWindows() ? 44 : sizeof(MENUITEMINFO) );
+		bChecked = true;
+	}
+	return theSize;
+}
+
 // default GUI font helper
 inline HFONT AtlGetDefaultGuiFont()
diff -ru2 include_original/atlframe.h include/atlframe.h
--- include_original/atlframe.h	2002-03-29 04:26:36.000000000 +0000
+++ include/atlframe.h	2003-04-16 15:43:41.000000000 +0100
@@ -2271,5 +2271,5 @@
 		MENUITEMINFO mii;
 		memset(&mii, 0, sizeof(MENUITEMINFO));
-		mii.cbSize = sizeof(MENUITEMINFO);
+		mii.cbSize = sizeofMENUITEMINFO(); // NT4 MENUITEMINFO Fix 
 		mii.fMask = MIIM_STATE;
 		mii.wID = nID;
@@ -2292,5 +2292,5 @@
 			MENUITEMINFO miiNow;
 			memset(&miiNow, 0, sizeof(MENUITEMINFO));
-			miiNow.cbSize = sizeof(MENUITEMINFO);
+			miiNow.cbSize = sizeofMENUITEMINFO(); // NT4 MENUITEMINFO Fix
 			miiNow.fMask = MIIM_TYPE;
 			miiNow.wID = nID;
diff -ru2 include_original/atlmisc.h include/atlmisc.h
--- include_original/atlmisc.h	2002-04-03 02:43:00.000000000 +0100
+++ include/atlmisc.h	2003-04-16 15:44:16.000000000 +0100
@@ -2870,5 +2870,5 @@
 		{
 			MENUITEMINFO mi;
-			mi.cbSize = sizeof(MENUITEMINFO);
+			mi.cbSize = sizeofMENUITEMINFO();
 			mi.fMask = MIIM_ID;
 			::GetMenuItemInfo(m_hMenu, nInsertPoint, TRUE, &mi);
diff -ru2 include_original/atluser.h include/atluser.h
--- include_original/atluser.h	2002-03-29 04:26:36.000000000 +0000
+++ include/atluser.h	2003-04-16 15:44:57.000000000 +0100
@@ -98,5 +98,5 @@
 	{
 		memset(this, 0, sizeof(MENUITEMINFO));
-		cbSize = sizeof(MENUITEMINFO);
+		cbSize = sizeofMENUITEMINFO(); // NT4 MENUITEMINFO Fix
 	}
 };
