Validate that __length_hint__ returns a usable result.
diff --git a/Objects/abstract.c b/Objects/abstract.c
index 86e2c39..7d0ed06 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -105,7 +105,7 @@
 		PyErr_Clear();
 		return defaultvalue;
 	}
-	rv = PyLong_AsSsize_t(ro);
+	rv = PyLong_Check(ro) ? PyLong_AsSsize_t(ro) : defaultvalue;
 	Py_DECREF(ro);
 	return rv;
 }