As usual, there were a bunch of other improvements and bugfixes scattered throughout the source tree. A search through the SVN change logs finds there were XXX patches applied and YYY bugs fixed between Python 2.4 and 2.5. Both figures are likely to be underestimates.
Some of the more notable changes are:
Note that this change means extension modules need to be more careful with how they allocate memory. Python's API has many different functions for allocating memory that are grouped into families. For example, PyMem_Malloc(), PyMem_Realloc(), and PyMem_Free() are one family that allocates raw memory, while PyObject_Malloc(), PyObject_Realloc(), and PyObject_Free() are another family that's supposed to be used for creating Python objects.
Previously these different families all reduced to the platform's malloc() and free() functions. This meant it didn't matter if you got things wrong and allocated memory with the PyMem function but freed it with the PyObject function. With the obmalloc change, these families now do different things, and mismatches will probably result in a segfault. You should carefully test your C extension modules with Python 2.5.
See About this document... for information on suggesting changes.