- fix a GC bug caused by malloc() failing
diff --git a/Objects/classobject.c b/Objects/classobject.c
index 19059fc..c362b80 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -437,7 +437,6 @@
 	if (inst == NULL)
 		return NULL;
 	inst->in_dict = PyDict_New();
-	PyObject_GC_Init(inst);
 	if (inst->in_dict == NULL) {
 		inst = (PyInstanceObject *) PyObject_AS_GC(inst);
 		PyObject_DEL(inst);
@@ -445,6 +444,7 @@
 	}
 	Py_INCREF(class);
 	inst->in_class = (PyClassObject *)class;
+	PyObject_GC_Init(inst);
 	if (initstr == NULL)
 		initstr = PyString_InternFromString("__init__");
 	init = instance_getattr2(inst, initstr);