,
Having review your code, I would like to recommend a next step.
Place the code in highlight execution. Run it, and see if, without caring about the highlighting going on, that the effect is duplicated. If not, I cannot be sure of where to advise you next. If it does, then you are doing good so far. Now, run the thing again (stop, restart, etc.) and pay attention to the highlight execution. You need to be able to figure out what code is executing, what flow occurs, when you press the start menu. I am guessing that the cause is something with the user interface that has an unexpected result in your code. Highlight execution will let you know EXACTLY what code is executing when the problem occurs, and is a very powerful troubleshooting tool.
If y
ou still can't figure it out, post again.
Good luck.