Care should be taken to ensure the return stack is in the same state upon leaving a colon definition as it was when entering. DO/LOOP and FOR/NEXT use the return stack to hold loop parameters, therefore, if pushing data temporarily to the return stack during a loop, the return stack should be restore before a LOOP, +LOOP or NEXT is executed.