diff --git a/Objects/abstract.c b/Objects/abstract.c
index 5717815..2c7c307 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -62,7 +62,7 @@
 }
 
 int
-PyObject_Length(PyObject *o)
+PyObject_Size(PyObject *o)
 {
 	PySequenceMethods *m;
 
@@ -75,7 +75,7 @@
 	if (m && m->sq_length)
 		return m->sq_length(o);
 
-	return PyMapping_Length(o);
+	return PyMapping_Size(o);
 }
 
 PyObject *
@@ -803,7 +803,7 @@
 }
 
 int
-PySequence_Length(PyObject *s)
+PySequence_Size(PyObject *s)
 {
 	PySequenceMethods *m;
 
@@ -1036,7 +1036,7 @@
 	if (m && m->sq_item) {
 		int i;
 		PyObject *t;
-		int n = PySequence_Length(v);
+		int n = PySequence_Size(v);
 		if (n < 0)
 			return NULL;
 		t = PyTuple_New(n);
@@ -1087,7 +1087,7 @@
 	if (m && m->sq_item) {
 		int i;
 		PyObject *l;
-		int n = PySequence_Length(v);
+		int n = PySequence_Size(v);
 		if (n < 0)
 			return NULL;
 		l = PyList_New(n);
@@ -1152,7 +1152,7 @@
 		return -1;
 	}
 	
-	l = PySequence_Length(s);
+	l = PySequence_Size(s);
 	if (l < 0)
 		return -1;
 
@@ -1232,7 +1232,7 @@
 		return -1;
 	}
 	
-	l = PySequence_Length(s);
+	l = PySequence_Size(s);
 	if (l < 0)
 		return -1;
 
@@ -1261,7 +1261,7 @@
 }
 
 int
-PyMapping_Length(PyObject *o)
+PyMapping_Size(PyObject *o)
 {
 	PyMappingMethods *m;
 
diff --git a/Objects/object.c b/Objects/object.c
index 9194c90..0c50175 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -958,7 +958,7 @@
 
 
 /* Hack to force loading of abstract.o */
-int (*_Py_abstract_hack)(PyObject *) = &PyObject_Length;
+int (*_Py_abstract_hack)(PyObject *) = &PyObject_Size;
 
 
 /* Python's malloc wrappers (see mymalloc.h) */
