Merge 2.10.x into master.

Unfortunately the ant-pleasing commit was on the far side of the previous merge, and it is intolerable to develop against master with five files being needlessly recompiled on every go-around.