sync from chukong:master