The output MenuRef of GetMenuItemHierarchicalMenu() may be NULL.
diff --git a/Mac/Modules/menu/_Menumodule.c b/Mac/Modules/menu/_Menumodule.c
index 3395b4d..f46eb83 100644
--- a/Mac/Modules/menu/_Menumodule.c
+++ b/Mac/Modules/menu/_Menumodule.c
@@ -1638,7 +1638,7 @@
 	                                   &outHierMenu);
 	if (_err != noErr) return PyMac_Error(_err);
 	_res = Py_BuildValue("O&",
-	                     MenuObj_New, outHierMenu);
+	                     OptMenuObj_New, outHierMenu);
 	return _res;
 }
 #endif
diff --git a/Mac/Modules/menu/menuscan.py b/Mac/Modules/menu/menuscan.py
index ef2d2f8..11be8f2 100644
--- a/Mac/Modules/menu/menuscan.py
+++ b/Mac/Modules/menu/menuscan.py
@@ -144,6 +144,8 @@
 			([("void", "*", "OutMode"), ("long", "*", "InMode"),
 			                            ("long", "*", "OutMode")],
 			 [("VarVarOutBuffer", "*", "InOutMode")]),
+			([("MenuRef", 'outHierMenu', "OutMode")],
+			 [("OptMenuRef", 'outHierMenu', "OutMode")]),
 			]
 
 	def writeinitialdefs(self):