some more error-message enhancements
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index bcc9a6c..49fcc09 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -85,7 +85,7 @@
 		if (!PyTuple_Check(alist)) {
 			if (!PySequence_Check(alist)) {
 				PyErr_Format(PyExc_TypeError,
-				     "apply() arg 2 expect sequence, found %s",
+				     "apply() arg 2 expected sequence, found %s",
 					     alist->ob_type->tp_name);
 				return NULL;
 			}
@@ -368,7 +368,7 @@
 		return NULL;
 	if ((size_t)length != strlen(str)) {
 		PyErr_SetString(PyExc_TypeError,
-				"expected string without null bytes");
+				"compile() expected string without null bytes");
 		return NULL;
 	}
 
@@ -644,7 +644,7 @@
 
 	if (!PyString_Check(name)) {
 		PyErr_SetString(PyExc_TypeError,
-				"attribute name must be string");
+				"getattr(): attribute name must be string");
 		return NULL;
 	}
 	result = PyObject_GetAttr(v, name);
@@ -700,7 +700,7 @@
 
 	if (!PyString_Check(name)) {
 		PyErr_SetString(PyExc_TypeError,
-				"attribute name must be string");
+				"hasattr(): attribute name must be string");
 		return NULL;
 	}
 	v = PyObject_GetAttr(v, name);
@@ -1556,11 +1556,11 @@
 		return NULL;
 
 	if (fin == NULL) {
-		PyErr_SetString(PyExc_RuntimeError, "lost sys.stdin");
+		PyErr_SetString(PyExc_RuntimeError, "[raw_]input: lost sys.stdin");
 		return NULL;
 	}
 	if (fout == NULL) {
-		PyErr_SetString(PyExc_RuntimeError, "lost sys.stdout");
+		PyErr_SetString(PyExc_RuntimeError, "[raw_]input: lost sys.stdout");
 		return NULL;
 	}
 	if (PyFile_SoftSpace(fout, 0)) {
@@ -1601,7 +1601,7 @@
 			size_t len = strlen(s);
 			if (len > INT_MAX) {
 				PyErr_SetString(PyExc_OverflowError,
-						"input too long");
+						"[raw_]input: input too long");
 				result = NULL;
 			}
 			else {
@@ -1776,7 +1776,7 @@
 		if (d == NULL) {
 			if (!PyErr_Occurred())
 				PyErr_SetString(PyExc_SystemError,
-						"no locals!?");
+						"vars(): no locals!?");
 		}
 		else
 			Py_INCREF(d);
@@ -1823,7 +1823,7 @@
 		/* reject string values for 'start' parameter */
 		if (PyObject_TypeCheck(result, &PyBaseString_Type)) {
 			PyErr_SetString(PyExc_TypeError,
-				"can't sum strings [use ''.join(seq) instead]");
+				"sum() can't sum strings [use ''.join(seq) instead]");
 			Py_DECREF(iter);
 			return NULL;
 		}
@@ -2177,7 +2177,7 @@
 		    tuple->ob_type->tp_as_sequence->sq_item) {
 			item = tuple->ob_type->tp_as_sequence->sq_item(tuple, i);
 		} else {
-			PyErr_SetString(PyExc_TypeError, "unsubscriptable object");
+			PyErr_SetString(PyExc_TypeError, "filter(): unsubscriptable tuple");
 			goto Fail_1;
 		}
 		if (func == Py_None) {