Well then, if it is the mouse button press that seems to trigger the bad behavior, I would start by putting a breakpoint at the start of that slot and stepping through the code line by line (including stepping into any functions called from within the slot) to see if there is something funny going on.
Another test would be to -not- try to reproduce the problem, but to just use whatever you can of the program -without- clicking the button. If at some point it breaks, then it would indicate that the button click is also a red herring and that the corruption is occurring earlier or somewhere else.
Bookmarks