Sync with my fork.

That's a lot of stuff.