Upstream merge 7849be8ec0b9525487d4e5adff043d7d57098a02.. 4a459e40a8ab6f...

...9c8e8b6f659a8bab51c5deeb60