diff --git a/Include/object.h b/Include/object.h
index e18e0e8..2250b7f 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -325,6 +325,13 @@
 /* PySequenceMethods contains sq_contains */
 #define Py_TPFLAGS_HAVE_SEQUENCE_IN (1L<<1)
 
+/* Objects which participate in garbage collection (see objimp.h) */
+#ifdef WITH_CYCLE_GC
+#define Py_TPFLAGS_GC (1L<<2)
+#else
+#define Py_TPFLAGS_GC 0
+#endif
+
 #define Py_TPFLAGS_DEFAULT  (Py_TPFLAGS_HAVE_GETCHARBUFFER | \
                              Py_TPFLAGS_HAVE_SEQUENCE_IN)
 
diff --git a/Include/objimpl.h b/Include/objimpl.h
index 71dbb93..860030f 100644
--- a/Include/objimpl.h
+++ b/Include/objimpl.h
@@ -234,6 +234,12 @@
    the 1st step is performed automatically for you, so in a C++ class
    constructor you would start directly with PyObject_Init/InitVar. */
 
+
+
+#ifndef WITH_CYCLE_GC
+#define PyGC_INFO_SIZE 0
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/Objects/classobject.c b/Objects/classobject.c
index 114f2d9..04362a7 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -428,7 +428,7 @@
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,
 	"class",
-	sizeof(PyClassObject),
+	sizeof(PyClassObject) + PyGC_INFO_SIZE,
 	0,
 	(destructor)class_dealloc, /*tp_dealloc*/
 	0,		/*tp_print*/
@@ -445,7 +445,7 @@
 	(getattrofunc)class_getattr, /*tp_getattro*/
 	(setattrofunc)class_setattr, /*tp_setattro*/
 	0,		/* tp_as_buffer */
-	Py_TPFLAGS_DEFAULT, /*tp_flags*/
+	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC, /*tp_flags*/
 	0,		/* tp_doc */
 	(traverseproc)class_traverse,	/* tp_traverse */
 };
@@ -1513,7 +1513,7 @@
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,
 	"instance",
-	sizeof(PyInstanceObject),
+	sizeof(PyInstanceObject) + PyGC_INFO_SIZE,
 	0,
 	(destructor)instance_dealloc, /*tp_dealloc*/
 	0,			/*tp_print*/
@@ -1530,7 +1530,7 @@
 	(getattrofunc)instance_getattr, /*tp_getattro*/
 	(setattrofunc)instance_setattr, /*tp_setattro*/
         0, /* tp_as_buffer */
-	Py_TPFLAGS_DEFAULT, /*tp_flags*/
+	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC, /*tp_flags*/
 	0,		/* tp_doc */
 	(traverseproc)instance_traverse,	/* tp_traverse */
 };
@@ -1748,7 +1748,7 @@
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,
 	"instance method",
-	sizeof(PyMethodObject),
+	sizeof(PyMethodObject) + PyGC_INFO_SIZE,
 	0,
 	(destructor)instancemethod_dealloc, /*tp_dealloc*/
 	0,			/*tp_print*/
@@ -1765,7 +1765,7 @@
 	(getattrofunc)instancemethod_getattr, /*tp_getattro*/
 	0,			/*tp_setattro*/
 	0,			/* tp_as_buffer */
-	Py_TPFLAGS_DEFAULT, /*tp_flags*/
+	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC, /*tp_flags*/
 	0,			/* tp_doc */
 	(traverseproc)instancemethod_traverse,	/* tp_traverse */
 };
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 2d33b92..ce38f11 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -1087,7 +1087,7 @@
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,
 	"dictionary",
-	sizeof(dictobject),
+	sizeof(dictobject) + PyGC_INFO_SIZE,
 	0,
 	(destructor)dict_dealloc, /*tp_dealloc*/
 	(printfunc)dict_print, /*tp_print*/
@@ -1104,7 +1104,7 @@
 	0,		/* tp_getattro */
 	0,		/* tp_setattro */
 	0,		/* tp_as_buffer */
-	Py_TPFLAGS_DEFAULT, /*tp_flags*/
+	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC, /*tp_flags*/
 	0,		/* tp_doc */
 	(traverseproc)dict_traverse,	/* tp_traverse */
 	(inquiry)dict_tp_clear,		/* tp_clear */
diff --git a/Objects/funcobject.c b/Objects/funcobject.c
index 142c7e7..b976eab 100644
--- a/Objects/funcobject.c
+++ b/Objects/funcobject.c
@@ -275,7 +275,7 @@
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,
 	"function",
-	sizeof(PyFunctionObject),
+	sizeof(PyFunctionObject) + PyGC_INFO_SIZE,
 	0,
 	(destructor)func_dealloc, /*tp_dealloc*/
 	0,		/*tp_print*/
@@ -292,7 +292,7 @@
 	0,		/*tp_getattro*/
 	0,		/*tp_setattro*/
 	0,		/* tp_as_buffer */
-	Py_TPFLAGS_DEFAULT, /*tp_flags*/
+	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC, /*tp_flags*/
 	0,		/* tp_doc */
 	(traverseproc)func_traverse,	/* tp_traverse */
 };
diff --git a/Objects/listobject.c b/Objects/listobject.c
index 65dfb18..e9f12ab 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -71,7 +71,8 @@
 		return PyErr_NoMemory();
 	}
 	/* PyObject_NewVar is inlined */
-	op = (PyListObject *) PyObject_MALLOC(sizeof(PyListObject));
+	op = (PyListObject *) PyObject_MALLOC(sizeof(PyListObject)
+						+ PyGC_INFO_SIZE);
 	if (op == NULL) {
 		return PyErr_NoMemory();
 	}
@@ -1497,7 +1498,7 @@
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,
 	"list",
-	sizeof(PyListObject),
+	sizeof(PyListObject) + PyGC_INFO_SIZE,
 	0,
 	(destructor)list_dealloc, /*tp_dealloc*/
 	(printfunc)list_print, /*tp_print*/
@@ -1514,7 +1515,7 @@
 	0,		/*tp_getattro*/
 	0,		/*tp_setattro*/
 	0,		/*tp_as_buffer*/
-	Py_TPFLAGS_DEFAULT,	/*tp_flags*/
+	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC,	/*tp_flags*/
  	0,		/* tp_doc */
  	(traverseproc)list_traverse,	/* tp_traverse */
  	(inquiry)list_clear,	/* tp_clear */
@@ -1576,7 +1577,7 @@
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,
 	"list (immutable, during sort)",
-	sizeof(PyListObject),
+	sizeof(PyListObject) + PyGC_INFO_SIZE,
 	0,
 	0,		/*tp_dealloc*/ /* Cannot happen */
 	(printfunc)list_print, /*tp_print*/
@@ -1593,7 +1594,7 @@
 	0,		/*tp_getattro*/
 	0,		/*tp_setattro*/
 	0,		/*tp_as_buffer*/
-	Py_TPFLAGS_DEFAULT,	/*tp_flags*/
+	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC,	/*tp_flags*/
  	0,		/* tp_doc */
  	(traverseproc)list_traverse,	/* tp_traverse */
 };
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index bbb56b1..73e3304 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -93,7 +93,8 @@
 		int nbytes = size * sizeof(PyObject *);
 		/* Check for overflow */
 		if (nbytes / sizeof(PyObject *) != (size_t)size ||
-		    (nbytes += sizeof(PyTupleObject) - sizeof(PyObject *))
+		    (nbytes += sizeof(PyTupleObject) - sizeof(PyObject *)
+		     		+ PyGC_INFO_SIZE)
 		    <= 0)
 		{
 			return PyErr_NoMemory();
@@ -452,7 +453,7 @@
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,
 	"tuple",
-	sizeof(PyTupleObject) - sizeof(PyObject *),
+	sizeof(PyTupleObject) - sizeof(PyObject *) + PyGC_INFO_SIZE,
 	sizeof(PyObject *),
 	(destructor)tupledealloc, /*tp_dealloc*/
 	(printfunc)tupleprint, /*tp_print*/
@@ -469,7 +470,7 @@
 	0,		/*tp_getattro*/
 	0,		/*tp_setattro*/
 	0,		/*tp_as_buffer*/
-	Py_TPFLAGS_DEFAULT, /*tp_flags*/
+	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC, /*tp_flags*/
 	0,              /*tp_doc*/
  	(traverseproc)tupletraverse,	/* tp_traverse */
 };
@@ -557,8 +558,9 @@
 #endif		
 	{
 		sv = (PyTupleObject *)
-			PyObject_REALLOC((char *)v,
-				sizeof(PyTupleObject) + newsize * sizeof(PyObject *));
+			PyObject_REALLOC((char *)v, sizeof(PyTupleObject) 
+					+ PyGC_INFO_SIZE
+					+ newsize * sizeof(PyObject *));
 		*pv = (PyObject *) sv;
 		if (sv == NULL) {
 			PyObject_DEL(v);
