diff --git a/mercurial/pathencode.c b/mercurial/pathencode.c
--- a/mercurial/pathencode.c
+++ b/mercurial/pathencode.c
@@ -171,7 +171,8 @@ PyObject *encodedir(PyObject *self, PyOb
 	newobj = PyBytes_FromStringAndSize(NULL, newlen);
 
 	if (newobj) {
-		PyBytes_GET_SIZE(newobj)--;
+		assert(PyBytes_Check(newobj));
+		Py_SIZE(newobj)--;
 		_encodedir(PyBytes_AS_STRING(newobj), newlen, path,
 			   len + 1);
 	}
@@ -638,7 +639,8 @@ static PyObject *hashmangle(const char *
 		memcopy(dest, &destlen, destsize, &src[lastdot],
 			len - lastdot - 1);
 
-	PyBytes_GET_SIZE(ret) = destlen;
+	PyBytes_Check(ret);
+	Py_SIZE(ret) = destlen;
 
 	return ret;
 }
@@ -750,7 +752,8 @@ PyObject *pathencode(PyObject *self, PyO
 		newobj = PyBytes_FromStringAndSize(NULL, newlen);
 
 		if (newobj) {
-			PyBytes_GET_SIZE(newobj)--;
+			PyBytes_Check(newobj);
+			Py_SIZE(newobj)--;
 			basicencode(PyBytes_AS_STRING(newobj), newlen, path,
 				    len + 1);
 		}