diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py
index ffa28a6..ecf1976 100644
--- a/Lib/test/test_weakref.py
+++ b/Lib/test/test_weakref.py
@@ -183,6 +183,17 @@
         self.assertEqual(L3[:5], p3[:5])
         self.assertEqual(L3[2:5], p3[2:5])
 
+    def test_proxy_unicode(self):
+        # See bug 5037
+        class C(object):
+            def __str__(self):
+                return "string"
+            def __bytes__(self):
+                return b"bytes"
+        instance = C()
+        self.assertTrue("__bytes__" in dir(weakref.proxy(instance)))
+        self.assertEqual(bytes(weakref.proxy(instance)), b"bytes")
+
     def test_proxy_index(self):
         class C:
             def __index__(self):
diff --git a/Misc/NEWS b/Misc/NEWS
index 2d47c04..bc1d91a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -137,6 +137,9 @@
 Library
 -------
 
+- Issue #5037: Proxy the __unicode__ special method instead to __unicode__
+  instead of __str__.
+
 - Issue #7341: Close the internal file object in the TarFile constructor in
   case of an error.
 
diff --git a/Objects/weakrefobject.c b/Objects/weakrefobject.c
index 214dd95..27f015d 100644
--- a/Objects/weakrefobject.c
+++ b/Objects/weakrefobject.c
@@ -435,6 +435,13 @@
         return generic(proxy, v, w); \
     }
 
+#define WRAP_METHOD(method, special) \
+    static PyObject * \
+    method(PyObject *proxy) { \
+	    UNWRAP(proxy); \
+		return PyObject_CallMethod(proxy, special, ""); \
+	}
+
 
 /* direct slots */
 
@@ -576,6 +583,15 @@
 }
 
 
+WRAP_METHOD(proxy_bytes, "__bytes__");
+
+
+static PyMethodDef proxy_methods[] = {
+	{"__bytes__", (PyCFunction)proxy_bytes, METH_NOARGS},
+	{NULL, NULL}
+};
+
+
 static PyNumberMethods proxy_as_number = {
     proxy_add,              /*nb_add*/
     proxy_sub,              /*nb_subtract*/
@@ -661,6 +677,7 @@
     0,                                  /* tp_weaklistoffset */
     (getiterfunc)proxy_iter,            /* tp_iter */
     (iternextfunc)proxy_iternext,       /* tp_iternext */
+	proxy_methods,                      /* tp_methods */
 };
 
 
