Merge pull request from linshun/master