diff --git a/Include/classobject.h b/Include/classobject.h
index a93abb6..e03f468 100644
--- a/Include/classobject.h
+++ b/Include/classobject.h
@@ -56,6 +56,13 @@
 	PyObject	*in_dict;	/* A dictionary */
 } PyInstanceObject;
 
+typedef struct {
+	PyObject_HEAD
+	PyObject *im_func;   /* The callable object implementing the method */
+	PyObject *im_self;   /* The instance it is bound to, or NULL */
+	PyObject *im_class;  /* The class that defined the method */
+} PyMethodObject;
+
 extern DL_IMPORT(PyTypeObject) PyClass_Type, PyInstance_Type, PyMethod_Type;
 
 #define PyClass_Check(op) ((op)->ob_type == &PyClass_Type)
@@ -70,6 +77,15 @@
 extern PyObject *PyMethod_Self Py_PROTO((PyObject *));
 extern PyObject *PyMethod_Class Py_PROTO((PyObject *));
 
+/* Macros for direct access to these values. Type checks are *not*
+   done, so use with care. */
+#define PyMethod_GET_FUNCTION(meth) \
+        (((PyMethodObject *)meth) -> im_func)
+#define PyMethod_GET_SELF(meth) \
+	(((PyMethodObject *)meth) -> im_self)
+#define PyMethod_GET_CLASS(meth) \
+	(((PyMethodObject *)meth) -> im_class)
+
 extern int PyClass_IsSubclass Py_PROTO((PyObject *, PyObject *));
 
 extern PyObject *PyInstance_DoBinOp
diff --git a/Objects/classobject.c b/Objects/classobject.c
index 86fc1d3..299ea64 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -1411,14 +1411,6 @@
    In case (b), im_self is NULL
 */
 
-typedef struct {
-	PyObject_HEAD
-	PyObject *im_func;	/* The function implementing the method */
-	PyObject *im_self;	/* The instance it is bound to, or NULL */
-	PyObject *im_class;	/* The class that defined the method */
-} PyMethodObject;
-
-
 static PyMethodObject *free_list;
 
 PyObject *
