Stack overflow

My ActionScript program involves three functions which call each other in a cycle until the program finishes. My document class, Pentisearch, calls NewPositions which calls CheckPositions which calls NextSquare which calls NewPositions again and so on. The main reason behind this is that I’m using tweens to transition between the calling of each function, so actually rather than calling the functions directly I assign them to event listeners.

It all worked fine, but then I tried adding code which skips to the end when you press the spacebar, bypassing all the tweens. So now, once the spacebar is pressed, the functions all call each other directly rather than from inside event listeners. I get a stack overflow error every time, and this is what the output window looks like:

Error: Error #1023: Stack overflow occurred.
 at flash.display::Sprite/constructChildren()
 at flash.display::Sprite()
 at flash.display::MovieClip()
 at Message()
 at Pentisearch/AddMessage()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
Error: Error #1023: Stack overflow occurred.
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()
 at Pentisearch/NewPositions()
 at Pentisearch/NextSquare()
 at Pentisearch/CheckPositions()

Does anybody know a way to fix this? Since I’m only calling the next function after I’m totally done with the previous one, I have no reason to return to that function or hang on to it. Yet clearly the program is using up all its power just trying to remember which function called what how many times, and I don’t want it to. If there was a way to just make the program forget about all those earlier function calls, maybe erase the stack somehow, that would be very useful to me. It would also be nice if I could end one function and call another at the same time, somehow transferring the flow from one link in the chain to another. Any other solution would also be very helpful. Thank you in advance.