merge from madrobby

merge from madrobby