Unified handle-conversion scheme to
  handle = Ctl.as_Resource(ctl)
  ctl = Ctl.as_Control(handle)
and similarly for List, Menu, TE. The old handle.as_Control() methods are
still there for backward compatability.
diff --git a/Mac/Modules/menu/Menumodule.c b/Mac/Modules/menu/Menumodule.c
index 52308b7..e40ace7 100644
--- a/Mac/Modules/menu/Menumodule.c
+++ b/Mac/Modules/menu/Menumodule.c
@@ -48,6 +48,7 @@
 #define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */
 
 #define as_Menu(h) ((MenuHandle)h)
+#define as_Resource(h) ((Handle)h)
 
 static PyObject *Menu_Error;
 
@@ -1123,9 +1124,13 @@
 	PyObject *_args;
 {
 	PyObject *_res = NULL;
-
-	return ResObj_New((Handle)_self->ob_itself);
-
+	Handle _rv;
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	_rv = as_Resource(_self->ob_itself);
+	_res = Py_BuildValue("O&",
+	                     ResObj_New, _rv);
+	return _res;
 }
 
 static PyObject *MenuObj_AppendMenu(_self, _args)
@@ -1291,7 +1296,7 @@
 	{"IsMenuItemIconEnabled", (PyCFunction)MenuObj_IsMenuItemIconEnabled, 1,
 	 "(UInt16 item) -> (Boolean _rv)"},
 	{"as_Resource", (PyCFunction)MenuObj_as_Resource, 1,
-	 "Return this Menu as a Resource"},
+	 "() -> (Handle _rv)"},
 	{"AppendMenu", (PyCFunction)MenuObj_AppendMenu, 1,
 	 "(Str255 data) -> None"},
 	{"InsertMenu", (PyCFunction)MenuObj_InsertMenu, 1,
diff --git a/Mac/Modules/menu/menuedit.py b/Mac/Modules/menu/menuedit.py
index 8e7d12b..5409663 100644
--- a/Mac/Modules/menu/menuedit.py
+++ b/Mac/Modules/menu/menuedit.py
@@ -3,17 +3,10 @@
 )
 functions.append(f)
 
-f = Function(MenuHandle, 'as_Menu',
-	(Handle, 'h', InMode))
+f = Function(MenuHandle, 'as_Menu', (Handle, 'h', InMode))
 functions.append(f)
 
-as_resource_body = """
-return ResObj_New((Handle)_self->ob_itself);
-"""
-
-f = ManualGenerator("as_Resource", as_resource_body)
-f.docstring = lambda : "Return this Menu as a Resource"
-
+f = Method(Handle, 'as_Resource', (MenuHandle, 'h', InMode))
 methods.append(f)
 
 # The following have "Mac" prepended to their names in the include file
diff --git a/Mac/Modules/menu/menusupport.py b/Mac/Modules/menu/menusupport.py
index 6424ed9..b706a36 100644
--- a/Mac/Modules/menu/menusupport.py
+++ b/Mac/Modules/menu/menusupport.py
@@ -24,6 +24,7 @@
 
 MenuHandle = OpaqueByValueType(OBJECTTYPE, OBJECTPREFIX)
 MenuRef = MenuHandle
+Handle = OpaqueByValueType("Handle", "ResObj")
 
 unsigned_char = Type('unsigned char', 'b')
 
@@ -34,6 +35,7 @@
 #define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */
 
 #define as_Menu(h) ((MenuHandle)h)
+#define as_Resource(h) ((Handle)h)
 """
 
 class MyObjectDefinition(GlobalObjectDefinition):