Synced with the source at 03af7ce626229ea3c8575337591d3d26a3de3511.