diff --git a/Include/objimpl.h b/Include/objimpl.h
index 396c23b..e27de30 100644
--- a/Include/objimpl.h
+++ b/Include/objimpl.h
@@ -34,11 +34,10 @@
    allocator) and initialize its object header fields.
 
 Note that objects created with PyObject_{New, NewVar} are allocated
-within the Python heap by an object allocator, the latter being
-implemented (by default) on top of the Python raw memory
-allocator. This ensures that Python keeps control on the user's
-objects regarding their memory management; for instance, they may be
-subject to automatic garbage collection.
+within the Python heap by the raw memory allocator (usually the system
+malloc).  If you want to use the specialized Python allocator use
+PyMalloc_New and PyMalloc_NewVar to allocate the objects and
+PyMalloc_Del to free them.
 
 In case a specific form of memory management is needed, implying that
 the objects would not reside in the Python heap (for example standard
@@ -84,9 +83,9 @@
 extern DL_IMPORT(void) PyObject_Free(void *);
 
 /* Macros */
-#define PyObject_MALLOC(n)           _PyMalloc_MALLOC(n)
-#define PyObject_REALLOC(op, n)      _PyMalloc_REALLOC((void *)(op), (n))
-#define PyObject_FREE(op)            _PyMalloc_FREE((void *)(op))
+#define PyObject_MALLOC(n)           PyMem_MALLOC(n)
+#define PyObject_REALLOC(op, n)      PyMem_REALLOC((void *)(op), (n))
+#define PyObject_FREE(op)            PyMem_FREE((void *)(op))
 
 /*
  * Generic object allocator interface
@@ -179,6 +178,22 @@
    constructor you would start directly with PyObject_Init/InitVar. */
 
 /*
+ * The PyMalloc Object Allocator
+ * =============================
+ */
+
+extern DL_IMPORT(PyObject *) _PyMalloc_New(PyTypeObject *);
+extern DL_IMPORT(PyVarObject *) _PyMalloc_NewVar(PyTypeObject *, int);
+extern DL_IMPORT(void) _PyMalloc_Del(PyObject *);
+
+#define PyMalloc_New(type, typeobj) \
+		( (type *) _PyMalloc_New(typeobj) )
+#define PyMalloc_NewVar(type, typeobj, n) \
+		( (type *) _PyMalloc_NewVar((typeobj), (n)) )
+#define PyMalloc_Del(op) _PyMalloc_Del((PyObject *)(op))
+
+
+/*
  * Garbage Collection Support
  * ==========================
  *
