>According to my Perl/Tk book, to halt the >processing of any and all callbacks bound to a >widget/event combination, you can use Tk::break >instead of the milder return. Yes. I think that's the section I read that made me wonder whether I needed to be returning this "break" thingy. >There appears to be a method named callback_break >(on the same level as the messageBox and >chooseColor methods). That might be what you need >to call. I'm just guessing, here... I tried calling callback_break(), but that didn't seem to do anything, either. I had a couple of responses on the perl/Tk newsgroup saying that so long as you bind the destroy event, it should then be up to your function to decide whether it exits or not. Ie, just returning, rather than calling exit() should mean the main loop continues to run. My code is definitely being called and I'm definitely not calling exit(), but it still seems to die, anyway. Obviously, this requires a deeper knowledge of how the event handling works than I have the time to look at. What I might end up doing, at least in the short term, is putting an exit button in the window and getting into the habit of clicking that, rather than the "X" in the corner. It always amazes me how things that you think are going to be trivial always end up consuming so much more time than all the complex code you write for your application :-).