Down-integrate some code from an internal branch.  (More to come.)

8 files changed