Synced with the source at 79e46d9e5d91fb978ac62fb2ed05ef992f45dbfa.