Synced with master branch.