Undo this part of the previous checkin:

  Also fixed an error message -- %s argument has non-string str()
  doesn't make sense for %r, so the error message now differentiates
  between %s and %r.

because PyObject_Repr() and PyObject_Str() ensure that this can never
happen.  Added a helpful comment instead.
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 52f96ff..6a9450a 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -3874,10 +3874,11 @@
 				if (temp == NULL)
 					goto error;
 				if (!PyString_Check(temp)) {
+					/* XXX Note: this should never happen,
+					   since PyObject_Repr() and
+					   PyObject_Str() assure this */
 					PyErr_SetString(PyExc_TypeError,
-					  c == 's' ?
-					  "%s argument has non-string str()" :
-					  "%r argument has non-string repr()");
+					  "%s argument has non-string str()");
 					Py_DECREF(temp);
 					goto error;
 				}