sync from chukong:master2