Typo in bytes.replace(): the buffer interface was always used.
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index d341436..d135991 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -2594,7 +2594,7 @@
 		from_s = PyString_AS_STRING(from);
 		from_len = PyString_GET_SIZE(from);
 	}
-	if (PyUnicode_Check(from))
+	else if (PyUnicode_Check(from))
 		return PyUnicode_Replace((PyObject *)self,
 					 from, to, count);
 	else if (PyObject_AsCharBuffer(from, &from_s, &from_len))