diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index 830cd08..f52edb6 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -1214,6 +1214,20 @@
     vereq(ff.__get__(0, int)(42), (int, 42))
     vereq(ff.__get__(0)(42), (int, 42))
 
+def classmethods_in_c():
+    if verbose: print "Testing C-based class methods..."
+    import xxsubtype as spam
+    a = (1, 2, 3)
+    d = {'abc': 123}
+    x, a1, d1 = spam.spamlist.classmeth(*a, **d)
+    veris(x, None)
+    vereq((spam.spamlist,) + a, a1)
+    vereq(d, d1)
+    x, a1, d1 = spam.spamlist().classmeth(*a, **d)
+    veris(x, None)
+    vereq((spam.spamlist,) + a, a1)
+    vereq(d, d1)
+
 def staticmethods():
     if verbose: print "Testing static methods..."
     class C(object):
@@ -1231,6 +1245,20 @@
     vereq(d.foo(1), (d, 1))
     vereq(D.foo(d, 1), (d, 1))
 
+def staticmethods_in_c():
+    if verbose: print "Testing C-based static methods..."
+    import xxsubtype as spam
+    a = (1, 2, 3)
+    d = {"abc": 123}
+    x, a1, d1 = spam.spamlist.staticmeth(*a, **d)
+    veris(x, None)
+    vereq(a, a1)
+    vereq(d, d1)
+    x, a1, d2 = spam.spamlist().staticmeth(*a, **d)
+    veris(x, None)
+    vereq(a, a1)
+    vereq(d, d1)
+
 def classic():
     if verbose: print "Testing classic classes..."
     class C:
@@ -2884,7 +2912,9 @@
     dynamics()
     errors()
     classmethods()
+    classmethods_in_c()
     staticmethods()
+    staticmethods_in_c()
     classic()
     compattr()
     newslot()
diff --git a/Modules/xxsubtype.c b/Modules/xxsubtype.c
index 3b91a0c..7a7cc1e 100644
--- a/Modules/xxsubtype.c
+++ b/Modules/xxsubtype.c
@@ -43,11 +43,39 @@
 	return Py_None;
 }
 
+static PyObject *
+spamlist_specialmeth(PyObject *self, PyObject *args, PyObject *kw)
+{
+	PyObject *result = PyTuple_New(3);
+
+	if (result != NULL) {
+		if (self == NULL)
+			self = Py_None;
+		if (kw == NULL)
+			kw = Py_None;
+		Py_INCREF(self);
+		PyTuple_SET_ITEM(result, 0, self);
+		Py_INCREF(args);
+		PyTuple_SET_ITEM(result, 1, args);
+		Py_INCREF(kw);
+		PyTuple_SET_ITEM(result, 2, kw);
+	}
+	return result;
+}
+
 static PyMethodDef spamlist_methods[] = {
 	{"getstate", (PyCFunction)spamlist_getstate, METH_VARARGS,
 	 	"getstate() -> state"},
 	{"setstate", (PyCFunction)spamlist_setstate, METH_VARARGS,
 	 	"setstate(state)"},
+	/* These entries differ only in the flags; they are used by the tests
+	   in test.test_descr. */
+	{"classmeth", (PyCFunction)spamlist_specialmeth,
+		METH_VARARGS | METH_KEYWORDS | METH_CLASS,
+	 	"classmeth(*args, **kw)"},
+	{"staticmeth", (PyCFunction)spamlist_specialmeth,
+		METH_VARARGS | METH_KEYWORDS | METH_STATIC,
+	 	"staticmeth(*args, **kw)"},
 	{NULL,	NULL},
 };
 
