Re-Merge from upstream