diff --git a/Include/memoryobject.h b/Include/memoryobject.h
index ad2e8e7..3888259 100644
--- a/Include/memoryobject.h
+++ b/Include/memoryobject.h
@@ -1,5 +1,4 @@
-
-/* Memory object interface */
+/* Memory view object. In Python this is available as "memoryview". */
 
 #ifndef Py_MEMORYOBJECT_H
 #define Py_MEMORYOBJECT_H
@@ -7,19 +6,15 @@
 extern "C" {
 #endif
 
-typedef struct {
-	PyObject_HEAD
-	PyObject *base;
-	Py_buffer view;
-} PyMemoryViewObject;
-
-
 PyAPI_DATA(PyTypeObject) PyMemoryView_Type;
 
-#define PyMemory_Check(op) (Py_TYPE(op) == &PyMemoryView_Type)
-#define PyMemoryView(op) (((PyMemoryViewObject *)(op))->view)
+#define PyMemoryView_Check(op) (Py_TYPE(op) == &PyMemoryView_Type)
 
-#define Py_END_OF_MEMORY	(-1)
+/* Get a pointer to the underlying Py_buffer of a memoryview object. */
+#define PyMemoryView_GET_BUFFER(op) (&((PyMemoryViewObject *)(op))->view)
+/* Get a pointer to the PyObject from which originates a memoryview object. */
+#define PyMemoryView_GET_BASE(op) (((PyMemoryViewObject *)(op))->view.obj)
+
 
 PyAPI_FUNC(PyObject *) PyMemoryView_GetContiguous(PyObject *base, 
 						  int buffertype, 
@@ -58,10 +53,21 @@
 
 PyAPI_FUNC(PyObject *) PyMemoryView_FromObject(PyObject *base);
 
-PyAPI_FUNC(PyObject *) PyMemoryView_FromMemory(Py_buffer *info);
+PyAPI_FUNC(PyObject *) PyMemoryView_FromBuffer(Py_buffer *info);
 	/* create new if bufptr is NULL 
 	    will be a new bytesobject in base */
 
+	
+/* The struct is declared here so that macros can work, but it shouldn't
+   be considered public. Don't access those fields directly, use the macros
+   and functions instead! */
+typedef struct {
+	PyObject_HEAD
+	PyObject *base;
+	Py_buffer view;
+} PyMemoryViewObject;
+	
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/Misc/NEWS b/Misc/NEWS
index e8fa5f5..8d163c2 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,12 @@
 Core and Builtins
 -----------------
 
+- Issue #3560: clean up the new C PyMemoryView API so that naming is
+  internally consistent; add macros PyMemoryView_GET_BASE() and
+  PyMemoryView_GET_BUFFER() to access useful properties of a memory views
+  without relying on a particular implementation; remove the ill-named
+  PyMemoryView() function (PyMemoryView_GET_BUFFER() can be used instead).
+
 - Issue #1819: function calls with several named parameters are now on
   average 35% faster (as measured by pybench).
 
diff --git a/Modules/_json.c b/Modules/_json.c
index a724f89..47c4a56 100644
--- a/Modules/_json.c
+++ b/Modules/_json.c
@@ -264,7 +264,7 @@
             if (PyBuffer_FillInfo(&info, NULL, &buf[end], next - end, 1, 0) < 0) {
                 goto bail;
             }
-            strchunk = PyMemoryView_FromMemory(&info);
+            strchunk = PyMemoryView_FromBuffer(&info);
             if (strchunk == NULL) {
                 goto bail;
             }
diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c
index b36c3a7..c108363 100644
--- a/Objects/memoryobject.c
+++ b/Objects/memoryobject.c
@@ -29,7 +29,7 @@
 Create a new memoryview object which references the given object.");
 
 PyObject *
-PyMemoryView_FromMemory(Py_buffer *info)
+PyMemoryView_FromBuffer(Py_buffer *info)
 {
 	PyMemoryViewObject *mview;
 
@@ -231,7 +231,7 @@
         mem = PyObject_New(PyMemoryViewObject, &PyMemoryView_Type);
         if (mem == NULL) return NULL;
 
-        view = &PyMemoryView(mem);
+        view = &mem->view;
         flags = PyBUF_FULL_RO;
         switch(buffertype) {
         case PyBUF_WRITE:
@@ -534,7 +534,7 @@
 			/* XXX:  This needs to be fixed so it
 			         actually returns a sub-view
 			*/
-			return PyMemoryView_FromMemory(&newview);
+			return PyMemoryView_FromBuffer(&newview);
 		}
 	}
 
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 5de265d..c85a063 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1200,7 +1200,7 @@
     buffer = NULL;
     if (PyBuffer_FillInfo(&info, NULL, (void *)s, size, 1, PyBUF_SIMPLE) < 0)
         goto onError;
-    buffer = PyMemoryView_FromMemory(&info);
+    buffer = PyMemoryView_FromBuffer(&info);
     if (buffer == NULL)
         goto onError;
     unicode = PyCodec_Decode(buffer, encoding, errors);
