Re-enable GC of iter objects.
diff --git a/Objects/iterobject.c b/Objects/iterobject.c
index 5783d20..789eb6c 100644
--- a/Objects/iterobject.c
+++ b/Objects/iterobject.c
@@ -12,22 +12,21 @@
 PySeqIter_New(PyObject *seq)
 {
 	seqiterobject *it;
-	it = PyObject_NEW(seqiterobject, &PySeqIter_Type);
+	it = PyObject_GC_New(seqiterobject, &PySeqIter_Type);
 	if (it == NULL)
 		return NULL;
 	it->it_index = 0;
 	Py_INCREF(seq);
 	it->it_seq = seq;
-	PyObject_GC_Init(it);
+	_PyObject_GC_TRACK(it);
 	return (PyObject *)it;
 }
 static void
 iter_dealloc(seqiterobject *it)
 {
-	PyObject_GC_Fini(it);
+	_PyObject_GC_UNTRACK(it);
 	Py_DECREF(it->it_seq);
-	it = (seqiterobject *) PyObject_AS_GC(it);
-	PyObject_DEL(it);
+	PyObject_GC_Del(it);
 }
 
 static int
@@ -100,7 +99,7 @@
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,					/* ob_size */
 	"iterator",				/* tp_name */
-	sizeof(seqiterobject) + PyGC_HEAD_SIZE,	/* tp_basicsize */
+	sizeof(seqiterobject),			/* tp_basicsize */
 	0,					/* tp_itemsize */
 	/* methods */
 	(destructor)iter_dealloc, 		/* tp_dealloc */
@@ -118,7 +117,7 @@
 	PyObject_GenericGetAttr,		/* tp_getattro */
 	0,					/* tp_setattro */
 	0,					/* tp_as_buffer */
-	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC,	/* tp_flags */
+	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
  	0,					/* tp_doc */
  	(traverseproc)iter_traverse,		/* tp_traverse */
  	0,					/* tp_clear */
@@ -147,24 +146,23 @@
 PyCallIter_New(PyObject *callable, PyObject *sentinel)
 {
 	calliterobject *it;
-	it = PyObject_NEW(calliterobject, &PyCallIter_Type);
+	it = PyObject_GC_New(calliterobject, &PyCallIter_Type);
 	if (it == NULL)
 		return NULL;
 	Py_INCREF(callable);
 	it->it_callable = callable;
 	Py_INCREF(sentinel);
 	it->it_sentinel = sentinel;
-	PyObject_GC_Init(it);
+	_PyObject_GC_TRACK(it);
 	return (PyObject *)it;
 }
 static void
 calliter_dealloc(calliterobject *it)
 {
-	PyObject_GC_Fini(it);
+	_PyObject_GC_UNTRACK(it);
 	Py_DECREF(it->it_callable);
 	Py_DECREF(it->it_sentinel);
-	it = (calliterobject *) PyObject_AS_GC(it);
-	PyObject_DEL(it);
+	PyObject_GC_Del(it);
 }
 
 static int
@@ -218,7 +216,7 @@
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,					/* ob_size */
 	"callable-iterator",			/* tp_name */
-	sizeof(calliterobject) + PyGC_HEAD_SIZE,/* tp_basicsize */
+	sizeof(calliterobject),			/* tp_basicsize */
 	0,					/* tp_itemsize */
 	/* methods */
 	(destructor)calliter_dealloc, 		/* tp_dealloc */
@@ -236,7 +234,7 @@
 	PyObject_GenericGetAttr,		/* tp_getattro */
 	0,					/* tp_setattro */
 	0,					/* tp_as_buffer */
-	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC,	/* tp_flags */
+	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
  	0,					/* tp_doc */
  	(traverseproc)calliter_traverse,	/* tp_traverse */
  	0,					/* tp_clear */