Alligned bone pose copy buttons (noticed in orange screenshot)
Also found that Proportional edit button starts allign but dosent end align. Didnt chgange incase this is intended??
Take a look header_view3d.c:4390

Campbell, most of the changes you made seem ok, but you do have to be careful since it's not just about looking good, it's also about grouping things meaningfully. We did some thoughts on more concrete guidelines for this here: http://mediawiki.blender.org/index.php/BlenderDev/UIAlignRulesGuides

Added user interface to OBJ import.
With options.
('Material (*.mtl)', IMPORT_MTL, 'Imports material settings and images from the obj\'s .mtl file'),\
('All *.obj\'s in dir', IMPORT_DIR, 'Import all obj files in this dir (avoid overlapping data with "Create scene")'),\
('Create scene', IMPORT_NEW_SCENE, 'Imports each obj into its own scene, named from the file'),\
'Geometry...',\
('Edges', IMPORT_EDGES, 'Import faces with 2 verts as in edge'),\
('Smooths all faces', IMPORT_SMOOTH_ALL, 'Smooth all faces even if they are not in a smoothing group'),\

Hopefully clear up the last of the obj import bugs.
* 8% speedup by using list comprehension.
* Slightly better smoothing group import.
* Handles bug in python that puts spaces before every line with '\r\n' line endings.

In fixing for negative indicies I broke positive indicies. Fixed. not helped by the fact the files I had for testing were 32 and 70 meg..
ALso modified the MTL loader for Object.Get's new ValueError.
- Should be good for release now.

more graphics patches from Snailrose,
remove constraint fixed,
Bullet timestep now subdivides Blender game engine timestep, so it runs 60 hertz,
SphereShape reverted to old style, so no support for non-uniform scaled spheres for now,

Bugfix #3731: User reported that cyclic IPO curves reported the wrong value
in the BPy API for the "end point". It was a minunderstanding of what
happens with cyclic Ipos, but we updated the documentation to make this
clearer in the future.

Fixed bug in importing OBJ files with negative indicies (UV and VERTS, normals are ignored)
Have alredy tested 100's of obj files and cant believe this is the first I have found with negative coords.
May fix the UI before 2.41, Importing a whole dir isnt very user friendly. and may want to support sequence import.
- Cam

Bugfix as provided by 'stealth apprentice' on the bf-comitters list.
Function get_constraint_target() should catch the case when a constraint
has unknown type, to prevent a pointer to become unitialized.

Added tri2quad script finds all possible quads to be made from selected triangle pairs, then joins the best first until the error limit is reached.
Just Updated and faster 8.5sec to 0.6sec for 2k triangles in my test.
Also my fav new function PupBlock for the UI input!

BPy: Mathutils fix: bug #3737
Vector.resize4D() didn't put 1 in the 4th component (the scale factor), as it did in 2.37.
While this is more "correct", it is much less usefull. Also, matrix.resize4x4 puts a 1 there too,
so might as well revert and be consistent.

A few Mesh fixes:
* edge and face extend() methods now add edges and faces in the order given
by their parameters. Note that if duplicate edges or faces are specified,
the order is preserved but the dups are removed, so indices won't match.
* allow extend(), findEdges() and faces.uv to accept lists or tuples
* fix bug in mesh.verts.extend() which didn't correctly check argument types

Fixed bug in do_clever_numbuts not displaying tooltips.
Comment:
Clear all events so tooltips work, this is not ideal and
only needed because calls from the menu still have some events
left over when do_clever_numbuts is called.
Calls from keyshortcuts do not have this problem.

This fixes most of the UV distortion issues with subsurf. Near seams
however there might still be some distortion, but this should at least
not be worse than before. Subsurf UV is enabled by default on new meshes,
and can be enabled in the modifier panel for existing ones.

Before and after:
http://users.pandora.be/blendix/notsmooth.png
http://users.pandora.be/blendix/smooth.png

Fixed bug in convert function with Mesh objects.
Objects with no modifier could still be converted, but resulting meshes were corrupt and segfaulted Blender when cycling edit mode.
This tests each mesh object for modifiers before converting.

Resulting metaballs meshes were not visible in wireframe.

Also made the selection context nicer, All new converted objects are selected while objects that are converted are deselected.

There was a problem with typing over text selections, where you had an object with 21 letter name (19 is the max but 21 is supported, just copy a mesh a few times)
After this click on the object name and start typing, even though the selection makes it that the new string would be overwritten, it dosent let you type in any text.

* Added PupBlock for user options.
* Improved context, unwraps active object if not selected and makes sure it only unwraps a mesh once even if 2+ instances are selected.
* Added Option to stretch to bounds
* Added option to have a margin, thanks to letterrip
* Fixed bug whe nassigning UV's to zero area faces.

PupBlock method. This wraps the "clevernumbut" code to allow scripters to use popup blocks for user input instead of a sequence of multiple different popups.
See the blend file for a comprehensive test and example file.

Sorry to break the cvs-closed status, so if you really need to make a new 2.40 build, just disable the game engine if it doesn't compile for a platform. Again, sorry if this breaks non-windows platforms, but I hope people help to get this amazing fix working for all platforms. Armature-fixing contribution from Snailrose. Also lots of cool things from Snailrose and Lagan.