Pull latest changes from master into 4.2.x branch

Tests still pass!