modify by fansm 20130510