diff --git a/Include/abstract.h b/Include/abstract.h
index 6b96adf..d1a1db3 100644
--- a/Include/abstract.h
+++ b/Include/abstract.h
@@ -381,11 +381,13 @@
 	 equivalent to the Python expression: type(o).
        */
 
-     DL_IMPORT(int) PyObject_Length(PyObject *o);
+     DL_IMPORT(int) PyObject_Size(PyObject *o);
+
+#define PyObject_Length(O) PyObject_Size((O))
 
        /*
-         Return the length of object o.  If the object, o, provides
-	 both sequence and mapping protocols, the sequence length is
+         Return the size of object o.  If the object, o, provides
+	 both sequence and mapping protocols, the sequence size is
 	 returned. On error, -1 is returned.  This is the equivalent
 	 to the Python expression: len(o).
 
@@ -681,10 +683,12 @@
 
        */
 
-     DL_IMPORT(int) PySequence_Length(PyObject *o);
+     DL_IMPORT(int) PySequence_Size(PyObject *o);
+
+#define PySequence_Length(O) PySequence_Size((O))
 
        /*
-         Return the length of sequence object o, or -1 on failure.
+         Return the size of sequence object o, or -1 on failure.
 
        */
 
@@ -833,7 +837,9 @@
 	 This function always succeeds.
        */
 
-     DL_IMPORT(int) PyMapping_Length(PyObject *o);
+     DL_IMPORT(int) PyMapping_Size(PyObject *o);
+
+#define PyMapping_Length(O) PyMapping_Size((O))
 
        /*
          Returns the number of keys in object o on success, and -1 on
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) */
