>>>>> "Brian" == Brian May writes: Brian> Good point. I meant to change it in both places, but I think I ended Brian> up changing it in only one place... You were right, I missed it up. Here is a patch that turns all methods into abstract methods. Unfortunately, I could not make Finalize abstract, the compiler complained that abstract methods must be visible (Finalize is in the private section). This restriction seems strange to me, but I am not going to argue with the compiler and left the function generating an exception at run-time. I suspect Finalize doesn't need to be abstract, but didn't go exploring enough to verify why it is abstract. Also, I noticed that the pointers are "access all". I couldn't see any requirement for "all", and my code still compiles, so I changed them to "access". This eliminates a potential source of errors.