Imported latest from master branch.