Sync with @awbjs's latest draft changes.

He did 698115eb0e8466108656470fa5c011862b6f1f8c slightly differently (better), and found a couple typos.