diff -r 599763461943 Objects/bytearrayobject.c --- a/Objects/bytearrayobject.c Tue Nov 29 17:14:27 2011 +0100 +++ b/Objects/bytearrayobject.c Wed Nov 30 00:02:08 2011 +0100 @@ -2730,15 +2730,9 @@ static PyObject * bytearray_reduce(PyByteArrayObject *self) { - PyObject *latin1, *dict; + PyObject *dict; _Py_IDENTIFIER(__dict__); - if (self->ob_bytes) - latin1 = PyUnicode_DecodeLatin1(self->ob_bytes, - Py_SIZE(self), NULL); - else - latin1 = PyUnicode_FromString(""); - dict = _PyObject_GetAttrId((PyObject *)self, &PyId___dict__); if (dict == NULL) { PyErr_Clear(); @@ -2746,7 +2740,11 @@ Py_INCREF(dict); } - return Py_BuildValue("(O(Ns)N)", Py_TYPE(self), latin1, "latin-1", dict); + if(self->ob_bytes) { + return Py_BuildValue("(O(y#)N)", Py_TYPE(self), self->ob_bytes, Py_SIZE(self), dict); + } else { + return Py_BuildValue("(O()N)", Py_TYPE(self), dict); + } } PyDoc_STRVAR(sizeof_doc,