sync with upstream 36eba34