sync with master branch v2.5