(p6i cc'd) Okay, I've got this down to a dozen lines. I'm using a build pulled from CVS two hours ago. In case what's going on here isn't obvious, I'm shifting the first character off of S2 and putting it on the stack until S2 is finally exhausted. It's a boiled down version of my tokenizer.
set S2, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" set I5, 0 # Stack depth TOKLOOP: length I0, S2 eq I0, 0, DUMP substr S1, S2, 0, 1 dec I0 substr S2, S2, 1, I0 inc I5 savec S1 branch TOKLOOP DUMP: eq I5, 0, BAIL restore S0 print S0 dec I5 branch DUMP BAIL: end With the current build, even using your new savec opcode (or clone), the stack gets seriously messed up. [In this example, the save opcode doesn't have the problem! But in others it does. I can't get anything to behave consistently. Strings on the stack are just *broke*.] So for the code given, the output instead of appearing as: ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba You get the unlikely: ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjZYXWVUTSR (I think it only *appears* like the stack wrapped on itself, BTW. In larger examples, garbage from elsewhere seems to pollute the stack instead of earlier entries like this.) Dumping larger things on the stack makes the problem occur at shallower depths -- sometimes. It really seems like things that have been hanging around on the stack for a while get mashed. Sorry it took me so long to get this down to something concise. I wish it were smaller, not so critical to me, and a little more consistent.