clear error state properly
diff --git a/Objects/abstract.c b/Objects/abstract.c
index e90710c..4da7e00 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -119,6 +119,7 @@
 		if (!PyErr_ExceptionMatches(PyExc_TypeError) &&
 		    !PyErr_ExceptionMatches(PyExc_AttributeError))
 			return -1;
+		PyErr_Clear();
 		return defaultvalue;
 	}
 	rv = PyLong_Check(ro) ? PyLong_AsSsize_t(ro) : defaultvalue;