Since BlitzMax uses a garbage collection system to delete
objects, don't rely on a destructor being called at any specific time; the Delete() Method (destructor) will be
called whenever the “garbage collector” gets around to it.
from http://www.alsbonsai.com/john/BlitzMax_OOP_Tutorial.pdf
...and some threads in this forum i think?