diff --git a/OpenSSL/ssl/connection.c b/OpenSSL/ssl/connection.c
index ccefcc8..f2881d3 100755
--- a/OpenSSL/ssl/connection.c
+++ b/OpenSSL/ssl/connection.c
@@ -392,8 +392,18 @@
     int len, ret, err, flags;
     PyObject *pyret = Py_None;
 
+#if PY_VERSION_HEX >= 0x02060000
+    Py_buffer pbuf;
+
+    if (!PyArg_ParseTuple(args, "s*|i:sendall", &pbuf, &flags))
+        return NULL;
+
+    buf = pbuf.buf;
+    len = pbuf.len;
+#else
     if (!PyArg_ParseTuple(args, "s#|i:sendall", &buf, &len, &flags))
         return NULL;
+#endif
 
     do {
         MY_BEGIN_ALLOW_THREADS(self->tstate)
@@ -417,9 +427,13 @@
             handle_ssl_errors(self->ssl, err, ret);
             pyret = NULL;
             break;
-        }    
+        }
     } while (len > 0);
 
+#if PY_VERSION_HEX >= 0x02060000
+    PyBuffer_Release(&pbuf);
+#endif
+
     Py_XINCREF(pyret);
     return pyret;
 }
diff --git a/OpenSSL/test/test_ssl.py b/OpenSSL/test/test_ssl.py
index 58aa497..bd5a92b 100644
--- a/OpenSSL/test/test_ssl.py
+++ b/OpenSSL/test/test_ssl.py
@@ -1116,6 +1116,7 @@
             self.assertEquals(client.recv(2), b('xy'))
 
 
+
 class ConnectionSendallTests(TestCase, _LoopbackMixin):
     """
     Tests for L{Connection.sendall}.
@@ -1141,6 +1142,21 @@
         self.assertEquals(client.recv(1), b('x'))
 
 
+    try:
+        memoryview
+    except NameError:
+        "cannot test sending memoryview without memoryview"
+    else:
+        def test_short_memoryview(self):
+            """
+            When passed a memoryview onto a small number of bytes,
+            L{Connection.sendall} transmits all of them.
+            """
+            server, client = self._loopback()
+            server.sendall(memoryview(b('x')))
+            self.assertEquals(client.recv(1), b('x'))
+
+
     def test_long(self):
         """
         L{Connection.sendall} transmits all of the bytes in the string passed to
