diff --git a/Objects/methodobject.c b/Objects/methodobject.c
index 05474b5..0cb4fd8 100644
--- a/Objects/methodobject.c
+++ b/Objects/methodobject.c
@@ -62,7 +62,7 @@
 	PyCFunctionObject* f = (PyCFunctionObject*)func;
 	PyCFunction meth = PyCFunction_GET_FUNCTION(func);
 	PyObject *self = PyCFunction_GET_SELF(func);
-	int flags = PyCFunction_GET_FLAGS(func);
+	int flags = PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC);
 	int size = PyTuple_GET_SIZE(arg);
 
 	if (flags & METH_KEYWORDS) {
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index c938f52..a596721 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -1694,6 +1694,20 @@
 
 /* Initialize the __dict__ in a type object */
 
+static PyObject *
+create_specialmethod(PyMethodDef *meth, PyObject *(*func)(PyObject *))
+{
+	PyObject *cfunc;
+	PyObject *result;
+
+	cfunc = PyCFunction_New(meth, NULL);
+	if (cfunc == NULL)
+		return NULL;
+	result = func(cfunc);
+	Py_DECREF(cfunc);
+	return result;
+}
+
 static int
 add_methods(PyTypeObject *type, PyMethodDef *meth)
 {
@@ -1703,10 +1717,23 @@
 		PyObject *descr;
 		if (PyDict_GetItemString(dict, meth->ml_name))
 			continue;
-		descr = PyDescr_NewMethod(type, meth);
+		if (meth->ml_flags & METH_CLASS) {
+			if (meth->ml_flags & METH_STATIC) {
+				PyErr_SetString(PyExc_ValueError,
+				     "method cannot be both class and static");
+				return -1;
+			}
+			descr = create_specialmethod(meth, PyClassMethod_New);
+		}
+		else if (meth->ml_flags & METH_STATIC) {
+			descr = create_specialmethod(meth, PyStaticMethod_New);
+		}
+		else {
+			descr = PyDescr_NewMethod(type, meth);
+		}
 		if (descr == NULL)
 			return -1;
-		if (PyDict_SetItemString(dict,meth->ml_name, descr) < 0)
+		if (PyDict_SetItemString(dict, meth->ml_name, descr) < 0)
 			return -1;
 		Py_DECREF(descr);
 	}
