Rebased changes from upstream