Split from master
Merge from upstream