For a finalizer to run - the program must be around long enough for GC to happen. I think your program just exits and deallocates everything, without any GC. Keean.