It looks like I've found a (disgusting) workaround.

Instead of keeping the one text object for the entire game, I now recreate it every time the function is called, and delete it at the end, so it doesn't matter if something happens with the pointer inbetween.

For now I can just hope it doesn't set some other random pointer to NULL...


~"I never let school interfere with my education"~
-Mark Twain