If one makes the caller, rather than the callee, do the unlink after a call, then one can return stuff on the stack with no problem with recursion or re-entrance. -- Tim Smith USENET: sdcrdcf!ism780c!tim Compuserve: 72257,3706 Delphi or GEnie: mnementh