officially deprecated max_buffer_size
diff --git a/Modules/_bufferedio.c b/Modules/_bufferedio.c
index 88f4fbc..01171cd 100644
--- a/Modules/_bufferedio.c
+++ b/Modules/_bufferedio.c
@@ -1415,6 +1415,16 @@
 };
 
 
+
+static int
+complain_about_max_buffer_size(void)
+{
+    if (PyErr_WarnEx(PyExc_DeprecationWarning,
+                     "max_buffer_size is deprecated", 1) < 0)
+        return 0;
+    return 1;
+}
+
 /*
  * class BufferedWriter
  */
@@ -1439,7 +1449,7 @@
     /* TODO: properly deprecate max_buffer_size */
     char *kwlist[] = {"raw", "buffer_size", "max_buffer_size", NULL};
     Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
-    Py_ssize_t max_buffer_size = -1;
+    Py_ssize_t max_buffer_size = -234;
     PyObject *raw;
 
     self->ok = 0;
@@ -1449,6 +1459,9 @@
         return -1;
     }
 
+    if (max_buffer_size != -234 && !complain_about_max_buffer_size())
+        return -1;
+
     if (_PyIOBase_checkWritable(raw, Py_True) == NULL)
         return -1;
 
@@ -1767,8 +1780,7 @@
     "\n"
     "reader and writer are RawIOBase objects that are readable and\n"
     "writeable respectively. If the buffer_size is omitted it defaults to\n"
-    "DEFAULT_BUFFER_SIZE. The max_buffer_size (for the buffered writer)\n"
-    "defaults to twice the buffer size.\n"
+    "DEFAULT_BUFFER_SIZE.\n"
     );
 
 /* XXX The usefulness of this (compared to having two separate IO objects) is
@@ -1789,13 +1801,16 @@
 {
     PyObject *reader, *writer;
     Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
-    Py_ssize_t max_buffer_size = -1;
+    Py_ssize_t max_buffer_size = -234;
 
     if (!PyArg_ParseTuple(args, "OO|nn:BufferedRWPair", &reader, &writer,
                           &buffer_size, &max_buffer_size)) {
         return -1;
     }
 
+    if (max_buffer_size != -234 && !complain_about_max_buffer_size())
+        return -1;
+
     if (_PyIOBase_checkReadable(reader, Py_True) == NULL)
         return -1;
     if (_PyIOBase_checkWritable(writer, Py_True) == NULL)
@@ -1812,7 +1827,7 @@
     if (self->reader == NULL)
         return -1;
 
-    args = Py_BuildValue("(nn)", buffer_size, max_buffer_size);
+    args = Py_BuildValue("(n)", buffer_size);
     if (args == NULL) {
         Py_CLEAR(self->reader);
         return -1;
@@ -2016,7 +2031,7 @@
 {
     char *kwlist[] = {"raw", "buffer_size", "max_buffer_size", NULL};
     Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
-    Py_ssize_t max_buffer_size = -1;
+    Py_ssize_t max_buffer_size = -234;
     PyObject *raw;
 
     self->ok = 0;
@@ -2026,6 +2041,9 @@
         return -1;
     }
 
+    if (max_buffer_size != -234 && !complain_about_max_buffer_size())
+        return -1;
+
     if (_PyIOBase_checkSeekable(raw, Py_True) == NULL)
         return -1;
     if (_PyIOBase_checkReadable(raw, Py_True) == NULL)