This reverts r63675 based on the discussion in this thread:

 http://mail.python.org/pipermail/python-dev/2008-June/079988.html

Python 2.6 should stick with PyString_* in its codebase.  The PyBytes_* names
in the spirit of 3.0 are available via a #define only.  See the email thread.
diff --git a/Objects/weakrefobject.c b/Objects/weakrefobject.c
index 2899bc70..1aee5a5 100644
--- a/Objects/weakrefobject.c
+++ b/Objects/weakrefobject.c
@@ -166,8 +166,8 @@
 						   "__name__");
 	if (nameobj == NULL)
 		PyErr_Clear();
-	else if (PyBytes_Check(nameobj))
-		name = PyBytes_AS_STRING(nameobj);
+	else if (PyString_Check(nameobj))
+		name = PyString_AS_STRING(nameobj);
         PyOS_snprintf(buffer, sizeof(buffer),
 		      name ? "<weakref at %p; to '%.50s' at %p (%s)>"
 		           : "<weakref at %p; to '%.50s' at %p>",
@@ -177,7 +177,7 @@
 		      name);
 	Py_XDECREF(nameobj);
     }
-    return PyBytes_FromString(buffer);
+    return PyString_FromString(buffer);
 }
 
 /* Weak references only support equality, not ordering. Two weak references
@@ -448,7 +448,7 @@
 		  "<weakproxy at %p to %.100s at %p>", proxy,
 		  Py_TYPE(PyWeakref_GET_OBJECT(proxy))->tp_name,
 		  PyWeakref_GET_OBJECT(proxy));
-    return PyBytes_FromString(buf);
+    return PyString_FromString(buf);
 }