diff --git a/Objects/iterobject.c b/Objects/iterobject.c
index abcf8db..a407dd5 100644
--- a/Objects/iterobject.c
+++ b/Objects/iterobject.c
@@ -71,6 +71,19 @@
 	return NULL;
 }
 
+static int
+iter_len(seqiterobject *it)
+{
+	if (it->it_seq)
+		return PyObject_Size(it->it_seq) - it->it_index;
+	return 0;
+}
+
+static PySequenceMethods iter_as_sequence = {
+	(inquiry)iter_len,		/* sq_length */
+	0,				/* sq_concat */
+};
+
 PyTypeObject PySeqIter_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,					/* ob_size */
@@ -85,7 +98,7 @@
 	0,					/* tp_compare */
 	0,					/* tp_repr */
 	0,					/* tp_as_number */
-	0,					/* tp_as_sequence */
+	&iter_as_sequence,			/* tp_as_sequence */
 	0,					/* tp_as_mapping */
 	0,					/* tp_hash */
 	0,					/* tp_call */
diff --git a/Objects/listobject.c b/Objects/listobject.c
index 3bda245..f34ca70 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -2707,6 +2707,19 @@
 	return NULL;
 }
 
+static int
+listiter_len(listiterobject *it)
+{
+	if (it->it_seq)
+		return PyList_GET_SIZE(it->it_seq) - it->it_index;
+	return 0;
+}
+
+static PySequenceMethods listiter_as_sequence = {
+	(inquiry)listiter_len,		/* sq_length */
+	0,				/* sq_concat */
+};
+
 PyTypeObject PyListIter_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,					/* ob_size */
@@ -2721,7 +2734,7 @@
 	0,					/* tp_compare */
 	0,					/* tp_repr */
 	0,					/* tp_as_number */
-	0,					/* tp_as_sequence */
+	&listiter_as_sequence,			/* tp_as_sequence */
 	0,					/* tp_as_mapping */
 	0,					/* tp_hash */
 	0,					/* tp_call */
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index 66fb146..60878a4 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -839,6 +839,19 @@
 	return NULL;
 }
 
+static int
+tupleiter_len(tupleiterobject *it)
+{
+	if (it->it_seq)
+		return PyTuple_GET_SIZE(it->it_seq) - it->it_index;
+	return 0;
+}
+
+static PySequenceMethods tupleiter_as_sequence = {
+	(inquiry)tupleiter_len,		/* sq_length */
+	0,				/* sq_concat */
+};
+
 PyTypeObject PyTupleIter_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,					/* ob_size */
@@ -853,7 +866,7 @@
 	0,					/* tp_compare */
 	0,					/* tp_repr */
 	0,					/* tp_as_number */
-	0,					/* tp_as_sequence */
+	&tupleiter_as_sequence,			/* tp_as_sequence */
 	0,					/* tp_as_mapping */
 	0,					/* tp_hash */
 	0,					/* tp_call */
