Ach. Recursive functions make my head hurt a bit. Other than that, this is pretty cool
It took me about 10 minutes of staring at that code to figure out how the imageFont object placement worked... And I had no idea about how SetImageOffset can be used like this. Nice.
I did notice a problem, though. For some reason, 'imageFont: Destroy' does not seem to be working, and the debugger shows a couple thousand objects by the time the message is fully displayed, and the number keeps quickly rising beyond that.