thanks for that Luc. so, any suggestions then? i seem to recall doing something similar to this with setjmp and longjmp a few years ago, but i'd be loath to try it with my boost heavy code. i'd be interested in any good resources on tail calls in C++. i've found one or two online, but after the first paragraph the discussion degenerates into 'real' languages like lisp & scheme, lol. cheers jono