Use pymalloc if it's enabled.
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index e843e76..5803c57 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -1914,7 +1914,7 @@
 dictiter_new(dictobject *dict, binaryfunc select)
 {
 	dictiterobject *di;
-	di = PyObject_NEW(dictiterobject, &PyDictIter_Type);
+	di = PyMalloc_New(dictiterobject, &PyDictIter_Type);
 	if (di == NULL)
 		return NULL;
 	Py_INCREF(dict);
@@ -1929,7 +1929,7 @@
 dictiter_dealloc(dictiterobject *di)
 {
 	Py_DECREF(di->di_dict);
-	PyObject_DEL(di);
+	PyMalloc_Del(di);
 }
 
 static PyObject *
diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c
index da791fa..fa7e660 100644
--- a/Objects/rangeobject.c
+++ b/Objects/rangeobject.c
@@ -60,7 +60,7 @@
 PyRange_New(long start, long len, long step, int reps)
 {
 	long totlen = -1;
-	rangeobject *obj = PyObject_NEW(rangeobject, &PyRange_Type);
+	rangeobject *obj = PyMalloc_New(rangeobject, &PyRange_Type);
 
 	if (obj == NULL)
 		return NULL;
@@ -104,7 +104,7 @@
 static void
 range_dealloc(rangeobject *r)
 {
-	PyObject_DEL(r);
+	PyMalloc_Del(r);
 }
 
 static PyObject *
diff --git a/Objects/sliceobject.c b/Objects/sliceobject.c
index 42cbf24..108ab27 100644
--- a/Objects/sliceobject.c
+++ b/Objects/sliceobject.c
@@ -60,7 +60,7 @@
 PyObject *
 PySlice_New(PyObject *start, PyObject *stop, PyObject *step)
 {
-	PySliceObject *obj = PyObject_NEW(PySliceObject, &PySlice_Type);
+	PySliceObject *obj = PyMalloc_New(PySliceObject, &PySlice_Type);
 
 	if (obj == NULL)
 		return NULL;
@@ -115,7 +115,7 @@
 	Py_DECREF(r->step);
 	Py_DECREF(r->start);
 	Py_DECREF(r->stop);
-	PyObject_DEL(r);
+	PyMalloc_Del(r);
 }
 
 static PyObject *
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 4fb5e93..b39d9e5 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -68,7 +68,7 @@
 
 	/* PyObject_NewVar is inlined */
 	op = (PyStringObject *)
-		PyObject_MALLOC(sizeof(PyStringObject) + size * sizeof(char));
+		_PyMalloc_MALLOC(sizeof(PyStringObject) + size * sizeof(char));
 	if (op == NULL)
 		return PyErr_NoMemory();
 	PyObject_INIT_VAR(op, &PyString_Type, size);
@@ -131,7 +131,7 @@
 
 	/* PyObject_NewVar is inlined */
 	op = (PyStringObject *)
-		PyObject_MALLOC(sizeof(PyStringObject) + size * sizeof(char));
+		_PyMalloc_MALLOC(sizeof(PyStringObject) + size * sizeof(char));
 	if (op == NULL)
 		return PyErr_NoMemory();
 	PyObject_INIT_VAR(op, &PyString_Type, size);
@@ -733,7 +733,7 @@
 	size = a->ob_size + b->ob_size;
 	/* PyObject_NewVar is inlined */
 	op = (PyStringObject *)
-		PyObject_MALLOC(sizeof(PyStringObject) + size * sizeof(char));
+		_PyMalloc_MALLOC(sizeof(PyStringObject) + size * sizeof(char));
 	if (op == NULL)
 		return PyErr_NoMemory();
 	PyObject_INIT_VAR(op, &PyString_Type, size);
@@ -780,7 +780,7 @@
 		return NULL;
 	}
 	op = (PyStringObject *)
-		PyObject_MALLOC(sizeof(PyStringObject) + nbytes);
+		_PyMalloc_MALLOC(sizeof(PyStringObject) + nbytes);
 	if (op == NULL)
 		return PyErr_NoMemory();
 	PyObject_INIT_VAR(op, &PyString_Type, size);
@@ -2789,7 +2789,7 @@
 	0,					/* tp_init */
 	0,					/* tp_alloc */
 	string_new,				/* tp_new */
-	_PyObject_Del,				/* tp_free */
+	_PyMalloc_Del,				/* tp_free */
 };
 
 void
@@ -2841,10 +2841,10 @@
 #endif
 	_Py_ForgetReference(v);
 	*pv = (PyObject *)
-		PyObject_REALLOC((char *)v,
+		_PyMalloc_REALLOC((char *)v,
 			sizeof(PyStringObject) + newsize * sizeof(char));
 	if (*pv == NULL) {
-		PyObject_DEL(v);
+		PyMalloc_Del(v);
 		PyErr_NoMemory();
 		return -1;
 	}
diff --git a/Objects/structseq.c b/Objects/structseq.c
index 377dfeb..7231ce1 100644
--- a/Objects/structseq.c
+++ b/Objects/structseq.c
@@ -22,7 +22,7 @@
 {
 	PyStructSequence *obj;
        
-	obj = PyObject_New(PyStructSequence, type);
+	obj = PyMalloc_New(PyStructSequence, type);
 	obj->ob_size = VISIBLE_SIZE_TP(type);
 
 	return (PyObject*) obj;
@@ -37,7 +37,7 @@
 	for (i = 0; i < size; ++i) {
 		Py_XDECREF(obj->ob_item[i]);
 	}
-	PyObject_FREE(obj);
+	PyMalloc_Del(obj);
 }
 
 static int
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 978ac54..73d5d9d 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -201,7 +201,7 @@
         PyObject_INIT(unicode, &PyUnicode_Type);
     }
     else {
-        unicode = PyObject_NEW(PyUnicodeObject, &PyUnicode_Type);
+        unicode = PyMalloc_New(PyUnicodeObject, &PyUnicode_Type);
         if (unicode == NULL)
             return NULL;
 	unicode->str = PyMem_NEW(Py_UNICODE, length + 1);
@@ -219,7 +219,7 @@
 
  onError:
     _Py_ForgetReference((PyObject *)unicode);
-    PyObject_DEL(unicode);
+    PyMalloc_Del(unicode);
     return NULL;
 }
 
@@ -5711,7 +5711,7 @@
 	pnew->str = PyMem_NEW(Py_UNICODE, n+1);
 	if (pnew->str == NULL) {
 		_Py_ForgetReference((PyObject *)pnew);
-		PyObject_DEL(pnew);
+		PyMalloc_Del(pnew);
 		return NULL;
 	}
 	Py_UNICODE_COPY(pnew->str, tmp->str, n+1);
@@ -5769,7 +5769,7 @@
     0,					/* tp_init */
     0,					/* tp_alloc */
     unicode_new,			/* tp_new */
-    _PyObject_Del,			/* tp_free */
+    _PyMalloc_Del,			/* tp_free */
 };
 
 /* Initialize the Unicode implementation */
@@ -5811,7 +5811,7 @@
 	if (v->str)
 	    PyMem_DEL(v->str);
 	Py_XDECREF(v->defenc);
-	PyObject_DEL(v);
+	PyMalloc_Del(v);
     }
     unicode_freelist = NULL;
     unicode_freelist_size = 0;