diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 2a63cfe..359e942 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -64,7 +64,7 @@
 
 	/* PyObject_NewVar is inlined */
 	op = (PyStringObject *)
-		_PyMalloc_MALLOC(sizeof(PyStringObject) + size * sizeof(char));
+		PyObject_MALLOC(sizeof(PyStringObject) + size * sizeof(char));
 	if (op == NULL)
 		return PyErr_NoMemory();
 	PyObject_INIT_VAR(op, &PyString_Type, size);
@@ -120,7 +120,7 @@
 
 	/* PyObject_NewVar is inlined */
 	op = (PyStringObject *)
-		_PyMalloc_MALLOC(sizeof(PyStringObject) + size * sizeof(char));
+		PyObject_MALLOC(sizeof(PyStringObject) + size * sizeof(char));
 	if (op == NULL)
 		return PyErr_NoMemory();
 	PyObject_INIT_VAR(op, &PyString_Type, size);
@@ -717,7 +717,7 @@
 	size = a->ob_size + b->ob_size;
 	/* PyObject_NewVar is inlined */
 	op = (PyStringObject *)
-		_PyMalloc_MALLOC(sizeof(PyStringObject) + size * sizeof(char));
+		PyObject_MALLOC(sizeof(PyStringObject) + size * sizeof(char));
 	if (op == NULL)
 		return PyErr_NoMemory();
 	PyObject_INIT_VAR(op, &PyString_Type, size);
@@ -760,7 +760,7 @@
 		return NULL;
 	}
 	op = (PyStringObject *)
-		_PyMalloc_MALLOC(sizeof(PyStringObject) + nbytes);
+		PyObject_MALLOC(sizeof(PyStringObject) + nbytes);
 	if (op == NULL)
 		return PyErr_NoMemory();
 	PyObject_INIT_VAR(op, &PyString_Type, size);
@@ -2755,7 +2755,7 @@
 	0,					/* tp_init */
 	0,					/* tp_alloc */
 	string_new,				/* tp_new */
-	_PyMalloc_Del,				/* tp_free */
+	PyObject_Del,	                	/* tp_free */
 };
 
 void
@@ -2807,10 +2807,10 @@
 #endif
 	_Py_ForgetReference(v);
 	*pv = (PyObject *)
-		_PyMalloc_REALLOC((char *)v,
+		PyObject_REALLOC((char *)v,
 			sizeof(PyStringObject) + newsize * sizeof(char));
 	if (*pv == NULL) {
-		PyMalloc_Del(v);
+		PyObject_Del(v);
 		PyErr_NoMemory();
 		return -1;
 	}
