Use PyType_Ready() for initialization of the ob_type field of our
types (the tp_base field must be initialized prior to that call).
diff --git a/Modules/xxsubtype.c b/Modules/xxsubtype.c
index e4910c1..d108409 100644
--- a/Modules/xxsubtype.c
+++ b/Modules/xxsubtype.c
@@ -242,11 +242,13 @@
 
 	/* Fill in the deferred data addresses.  This must be done before
 	   PyType_Ready() is called. */
-	spamdict_type.ob_type = &PyType_Type;
 	spamdict_type.tp_base = &PyDict_Type;
+	if (PyType_Ready(&spamdict_type) < 0)
+		return;
 
-	spamlist_type.ob_type = &PyType_Type;
 	spamlist_type.tp_base = &PyList_Type;
+	if (PyType_Ready(&spamlist_type) < 0)
+		return;
 
 	m = Py_InitModule3("xxsubtype",
 			   xxsubtype_functions,