push from asmack ....一些修改。