fixed issue #1#2#3 by Ma