resync with upstream stable v16