diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c
index 0f4d4c3..79c1e4f 100644
--- a/Objects/bytesobject.c
+++ b/Objects/bytesobject.c
@@ -3,9 +3,6 @@
 #define PY_SSIZE_T_CLEAN
 
 #include "Python.h"
-
-#include "formatter_string.h"
-
 #include <ctype.h>
 
 #ifdef COUNT_ALLOCS
@@ -3939,6 +3936,35 @@
 \n\
 ");
 
+static PyObject *
+string__format__(PyObject* self, PyObject* args)
+{
+    PyObject *format_spec;
+    PyObject *result = NULL;
+    PyObject *tmp = NULL;
+
+    /* If 2.x, convert format_spec to the same type as value */
+    /* This is to allow things like u''.format('') */
+    if (!PyArg_ParseTuple(args, "O:__format__", &format_spec))
+        goto done;
+    if (!(PyBytes_Check(format_spec) || PyUnicode_Check(format_spec))) {
+        PyErr_Format(PyExc_TypeError, "__format__ arg must be str "
+		     "or unicode, not %s", Py_TYPE(format_spec)->tp_name);
+	goto done;
+    }
+    tmp = PyObject_Str(format_spec);
+    if (tmp == NULL)
+        goto done;
+    format_spec = tmp;
+
+    result = _PyBytes_FormatAdvanced(self,
+				     PyBytes_AS_STRING(format_spec),
+				     PyBytes_GET_SIZE(format_spec));
+done:
+    Py_XDECREF(tmp);
+    return result;
+}
+
 PyDoc_STRVAR(p_format__doc__,
 "S.__format__(format_spec) -> unicode\n\
 \n\
