Set the correct value for the cch element of MENUITEMINFO in
GetMenuItemInfo.

diff --git a/controls/menu.c b/controls/menu.c
index fa915d8..6eeb608 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -4293,34 +4293,40 @@
     if (lpmii->fMask & MIIM_TYPE) {
 	lpmii->fType = menu->fType;
 	switch (MENU_ITEM_TYPE(menu->fType)) {
-		case MF_STRING:
-		    if (menu->text && lpmii->dwTypeData && lpmii->cch) {
-			if (unicode) {
-			    lstrcpynAtoW((LPWSTR) lpmii->dwTypeData, menu->text, lpmii->cch);
-			    lpmii->cch = lstrlenW((LPWSTR)menu->text);
-			} else {
-			    lstrcpynA(lpmii->dwTypeData, menu->text, lpmii->cch);
-			    lpmii->cch = lstrlenA(menu->text);
-			}
-		    }
-		    break;
-		case MF_OWNERDRAW:
-		case MF_BITMAP:
-		    lpmii->dwTypeData = menu->text;
-		    /* fall through */
-		default:
-		    lpmii->cch = 0;
+	case MF_STRING:
+ 	    if (menu->text) {
+	        int len = lstrlenA(menu->text);
+	        if(lpmii->dwTypeData && lpmii->cch) {
+		    if (unicode)
+		        lstrcpynAtoW((LPWSTR) lpmii->dwTypeData, menu->text,
+				     lpmii->cch);
+		    else
+		        lstrcpynA(lpmii->dwTypeData, menu->text, lpmii->cch);
+		    /* if we've copied a substring we return its length */
+		    if(lpmii->cch <= len)
+		        lpmii->cch--;
+		} else /* return length of string */
+		    lpmii->cch = len;
+	    }
+	    break;
+	case MF_OWNERDRAW:
+	case MF_BITMAP:
+	    lpmii->dwTypeData = menu->text;
+	    /* fall through */
+	default:
+	    lpmii->cch = 0;
 	}
     }
 
     if (lpmii->fMask & MIIM_STRING) {
-	if (unicode) {
-	    lstrcpynAtoW((LPWSTR) lpmii->dwTypeData, menu->text, lpmii->cch);
-	    lpmii->cch = lstrlenW((LPWSTR)menu->text);
-	} else {
-	    lstrcpynA(lpmii->dwTypeData, menu->text, lpmii->cch);
-	    lpmii->cch = lstrlenA(menu->text);
+        if(lpmii->dwTypeData && lpmii->cch) {
+	    if (unicode)
+	        lstrcpynAtoW((LPWSTR) lpmii->dwTypeData, menu->text,
+			     lpmii->cch);
+	    else
+	        lstrcpynA(lpmii->dwTypeData, menu->text, lpmii->cch);
 	}
+	lpmii->cch = lstrlenA(menu->text);
     }
 
     if (lpmii->fMask & MIIM_FTYPE)