Put the case statement inside of the event structure. Generally you should have one event structure per VI.
What causes the lock up is that the value change event is set to lock the front panel until it is handled. So you click the button the front panel locks waiting for the event to be handled. But since the value of the boolean can't be change by the user during the lock, the event structure will never be reached and the front panel stays locked. Note that when the front panel is locked the VI is still running in the background and it can change the front panel, but all the things the user tries to do are queued up waiting to run when the lock ends.
You could edit the event to not lock the front panel, but that is generally a bad idea and should only be done with care and a really good reason (since it allows events to be processed out of order, and some other stuff I'm probably forgetting). Another option is to dynamically registry and unregistry the events, but that may be more complicated than just putting the case statement in the event structure.
[edit]
I got distracted in the middle of writing, so I didn't see altenbach's response untill after I posted[/edit]Message Edited by Matt W on 10-18-2006 08:39 PM