Merged upstream, needs rebasing