Make all of test_bytes pass (except pickling, which is too badly busted).
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 26d6fc6..d4a17ce 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -5634,6 +5634,12 @@
     if (v == NULL)
         goto onError;
     if (!PyBytes_Check(v)) {
+        if (PyString_Check(v)) {
+            /* Old codec, turn it into bytes */
+            PyObject *b = PyBytes_FromObject(v);
+            Py_DECREF(v);
+            return b;
+        }
         PyErr_Format(PyExc_TypeError,
                      "encoder did not return a bytes object "
                      "(type=%.400s)",