> For instance, lenghty_function() executes, when an > external event triggers cancel(), which is supposed to > abruptly stop lengthy_function(), reset some variables > and exit immediately. I would set a variable someplace (perhaps globally) that gets tested in lengthy_function()'s loop and issues a break. If it's threaded then colour me clueless. \d