diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c
index c0c091e..fc834f2 100644
--- a/Modules/gcmodule.c
+++ b/Modules/gcmodule.c
@@ -828,6 +828,34 @@
 	return result;
 }
 
+static int
+referrentsvisit(PyObject *obj, PyObject *list)
+{
+	if (PyList_Append(list, obj) < 0)
+		return 1;
+	return 0;
+}
+
+PyDoc_STRVAR(gc_get_referrents__doc__,
+"get_referrents(*objs) -> list\n\
+Return the list of objects that directly refer to any of objs.");
+
+static PyObject *
+gc_get_referrents(PyObject *self, PyObject *args)
+{
+	int i;
+	PyObject *result = PyList_New(0);
+	for (i = 0; i < PyTuple_GET_SIZE(args); i++) {
+		PyObject *obj = PyTuple_GET_ITEM(args, i); 
+		traverseproc traverse = obj->ob_type->tp_traverse;
+		if (!traverse)
+			continue;
+		if (traverse(obj, (visitproc)referrentsvisit, result))
+			return NULL;
+	}
+	return result;
+}
+
 PyDoc_STRVAR(gc_get_objects__doc__,
 "get_objects() -> [...]\n"
 "\n"
@@ -884,7 +912,8 @@
 "set_threshold() -- Set the collection thresholds.\n"
 "get_threshold() -- Return the current the collection thresholds.\n"
 "get_objects() -- Return a list of all objects tracked by the collector.\n"
-"get_referrers() -- Return the list of objects that refer to an object.\n");
+"get_referrers() -- Return the list of objects that refer to an object.\n"
+"get_referrents() -- Return the list of objects that an object refers to.\n");
 
 static PyMethodDef GcMethods[] = {
 	{"enable",	   gc_enable,	  METH_VARARGS, gc_enable__doc__},
@@ -898,6 +927,8 @@
 	{"get_objects",    gc_get_objects,METH_VARARGS, gc_get_objects__doc__},
 	{"get_referrers",  gc_get_referrers, METH_VARARGS,
 		gc_get_referrers__doc__},
+	{"get_referrents",  gc_get_referrents, METH_VARARGS,
+		gc_get_referrents__doc__},
 	{NULL,	NULL}		/* Sentinel */
 };
 
