backport d1c9fe2da5711f8789e2f3127a350bac14cd6ddd