diff --git a/include/pybind11/common.h b/include/pybind11/common.h
index 32e8abf..302d75a 100644
--- a/include/pybind11/common.h
+++ b/include/pybind11/common.h
@@ -232,30 +232,6 @@
         if (view) { PyBuffer_Release(view); delete view; }
     }
 
-    Py_buffer& as_pybuffer() const {
-        static Py_buffer buf { };
-        // Py_buffer uses signed sizes, strides and shape!..
-        static std::vector<Py_ssize_t> py_strides { };
-        static std::vector<Py_ssize_t> py_shape { };
-        buf.buf = ptr;
-        buf.itemsize = (Py_ssize_t) itemsize;
-        buf.format = const_cast<char *>(format.c_str());
-        buf.ndim = (int) ndim;
-        buf.len = (Py_ssize_t) size;
-        py_strides.clear();
-        py_shape.clear();
-        for (size_t i = 0; i < ndim; ++i) {
-            py_strides.push_back((Py_ssize_t) strides[i]);
-            py_shape.push_back((Py_ssize_t) shape[i]);
-        }
-        buf.strides = py_strides.data();
-        buf.shape = py_shape.data();
-        buf.suboffsets = nullptr;
-        buf.readonly = false;
-        buf.internal = nullptr;
-        return buf;
-    }
-
 private:
     Py_buffer *view = nullptr;
 };
diff --git a/include/pybind11/pytypes.h b/include/pybind11/pytypes.h
index 7a6cf6f..db87b08 100644
--- a/include/pybind11/pytypes.h
+++ b/include/pybind11/pytypes.h
@@ -572,10 +572,29 @@
 
 class memoryview : public object {
 public:
-    memoryview(const buffer_info& info) : memoryview(&info.as_pybuffer()) { }
+    memoryview(const buffer_info& info) {
+        static Py_buffer buf { };
+        // Py_buffer uses signed sizes, strides and shape!..
+        static std::vector<Py_ssize_t> py_strides { };
+        static std::vector<Py_ssize_t> py_shape { };
+        buf.buf = info.ptr;
+        buf.itemsize = (Py_ssize_t) info.itemsize;
+        buf.format = const_cast<char *>(info.format.c_str());
+        buf.ndim = (int) info.ndim;
+        buf.len = (Py_ssize_t) info.size;
+        py_strides.clear();
+        py_shape.clear();
+        for (size_t i = 0; i < info.ndim; ++i) {
+            py_strides.push_back((Py_ssize_t) info.strides[i]);
+            py_shape.push_back((Py_ssize_t) info.shape[i]);
+        }
+        buf.strides = py_strides.data();
+        buf.shape = py_shape.data();
+        buf.suboffsets = nullptr;
+        buf.readonly = false;
+        buf.internal = nullptr;
 
-    memoryview(Py_buffer* view)
-    : object(PyMemoryView_FromBuffer(view), false) {
+        m_ptr = PyMemoryView_FromBuffer(&buf);
         if (!m_ptr)
             pybind11_fail("Unable to create memoryview from buffer descriptor");
     }
