Merged trunk changes 1015-1047 into the new-backend branch.
Merged trunk changes 983-1012 into the new-backend branch.
Merged trunk changes 868-912 into the new-backend branch.