diff --git a/Lib/test/list_tests.py b/Lib/test/list_tests.py
index 284edb3..14b54c7 100644
--- a/Lib/test/list_tests.py
+++ b/Lib/test/list_tests.py
@@ -514,3 +514,12 @@
         a = self.type2test(range(10))
         a[::2] = tuple(range(5))
         self.assertEqual(a, self.type2test([0, 1, 1, 3, 2, 5, 3, 7, 4, 9]))
+
+    def test_constructor_exception_handling(self):
+        # Bug #1242657
+        class F(object):
+            def __iter__(self):
+                yield 23
+            def __len__(self):
+                raise KeyboardInterrupt
+        self.assertRaises(KeyboardInterrupt, list, F())
diff --git a/Objects/abstract.c b/Objects/abstract.c
index cade2aa..94af3da 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -1401,6 +1401,11 @@
 	/* Guess result size and allocate space. */
 	n = PyObject_Size(v);
 	if (n < 0) {
+		if (!PyErr_ExceptionMatches(PyExc_TypeError)  &&
+		    !PyErr_ExceptionMatches(PyExc_AttributeError)) {
+			Py_DECREF(it);
+			return NULL;
+		}
 		PyErr_Clear();
 		n = 10;  /* arbitrary */
 	}
diff --git a/Objects/listobject.c b/Objects/listobject.c
index 08ab095..3b7358a 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -777,6 +777,11 @@
 	/* Guess a result list size. */
 	n = PyObject_Size(b);
 	if (n < 0) {
+		if (!PyErr_ExceptionMatches(PyExc_TypeError)  &&
+		    !PyErr_ExceptionMatches(PyExc_AttributeError)) {
+			Py_DECREF(it);
+			return NULL;
+		}
 		PyErr_Clear();
 		n = 8;	/* arbitrary */
 	}
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index f63e27a..af5a55b 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -223,6 +223,10 @@
 	/* Guess a result list size. */
 	len = PyObject_Size(seq);
 	if (len < 0) {
+		if (!PyErr_ExceptionMatches(PyExc_TypeError)  &&
+		    !PyErr_ExceptionMatches(PyExc_AttributeError)) {
+			goto Fail_it;
+		}
 		PyErr_Clear();
 		len = 8;	/* arbitrary */
 	}
@@ -864,6 +868,10 @@
 		/* Update len. */
 		curlen = PyObject_Size(curseq);
 		if (curlen < 0) {
+			if (!PyErr_ExceptionMatches(PyExc_TypeError)  &&
+			    !PyErr_ExceptionMatches(PyExc_AttributeError)) {
+				goto Fail_2;
+			}
 			PyErr_Clear();
 			curlen = 8;  /* arbitrary */
 		}
@@ -2097,6 +2105,10 @@
 		PyObject *item = PyTuple_GET_ITEM(args, i);
 		int thislen = PyObject_Size(item);
 		if (thislen < 0) {
+			if (!PyErr_ExceptionMatches(PyExc_TypeError)  &&
+			    !PyErr_ExceptionMatches(PyExc_AttributeError)) {
+				return NULL;
+			}
 			PyErr_Clear();
 			len = -1;
 			break;
