Upstream merge ede7dad..7849be8ec0b9525487d4e5adff043d7d57098a02