Merge with trunk.
Merge latest changes from unordered.