diff --git a/Modules/stdwinmodule.c b/Modules/stdwinmodule.c
index 4d28f97..1b27b71 100644
--- a/Modules/stdwinmodule.c
+++ b/Modules/stdwinmodule.c
@@ -751,8 +751,9 @@
 
 /* Menu objects */
 
-#define MAXNMENU 50
-static menuobject *menulist[MAXNMENU]; /* Slot 0 unused */
+#define IDOFFSET 10		/* Menu IDs we use start here */
+#define MAXNMENU 20		/* Max #menus we allow */
+static menuobject *menulist[MAXNMENU];
 
 static menuobject *
 newmenuobject(title)
@@ -761,19 +762,19 @@
 	int id;
 	MENU *menu;
 	menuobject *mp;
-	for (id = 1; id < MAXNMENU; id++) {
+	for (id = 0; id < MAXNMENU; id++) {
 		if (menulist[id] == NULL)
 			break;
 	}
 	if (id >= MAXNMENU)
 		return (menuobject *) err_nomem();
-	menu = wmenucreate(id, getstringvalue(title));
+	menu = wmenucreate(id + IDOFFSET, getstringvalue(title));
 	if (menu == NULL)
 		return (menuobject *) err_nomem();
 	mp = NEWOBJ(menuobject, &Menutype);
 	if (mp != NULL) {
 		mp->m_menu = menu;
-		mp->m_id = id;
+		mp->m_id = id + IDOFFSET;
 		mp->m_attr = NULL;
 		menulist[id] = mp;
 	}
@@ -789,8 +790,8 @@
 	menuobject *mp;
 {
 	
-	int id = mp->m_id;
-	if (id >= 0 && id < MAXNMENU) {
+	int id = mp->m_id - IDOFFSET;
+	if (id >= 0 && id < MAXNMENU && menulist[id] == mp) {
 		menulist[id] = NULL;
 	}
 	wmenudelete(mp->m_menu);
@@ -1373,9 +1374,9 @@
 				e.u.where.mask);
 		break;
 	case WE_MENU:
-		if (e.u.m.id >= 0 && e.u.m.id < MAXNMENU &&
-					menulist[e.u.m.id] != NULL)
-			w = (object *)menulist[e.u.m.id];
+		if (e.u.m.id >= IDOFFSET && e.u.m.id < IDOFFSET+MAXNMENU &&
+				menulist[e.u.m.id - IDOFFSET] != NULL)
+			w = (object *)menulist[e.u.m.id - IDOFFSET];
 		else
 			w = None;
 		w = makemenu(w, e.u.m.item);
@@ -1663,5 +1664,10 @@
 void
 initstdwin()
 {
+	static int inited;
+	if (!inited) {
+		winit();
+		inited = 1;
+	}
 	initmodule("stdwin", stdwin_methods);
 }
