Issue 629

There could a conflict with 649, please let me know when it's going to be merge so I will merge this branch with titan05.