I don't know the tree code well enough to say wether the extra redraw is necessary but I noticed that the tree looked correct before hitting  breakpoint inside the one handler.