Hi Michael,
In fact, from my understanding, SAP changed "completely" the internals on how COM objects are allocated and freed: with previous versions it was mandatory to free everything, while with V9 only the first instance (from my experience) needs to be freed when no more accessed (should also be the last accessed).
In your sample, I'll be interested to see what you do in the "some process here" block, regarding my previous sentence
I'm programming in C#... But basically I'm doing the same (except that it's encapsulated in a base class) and I'm not having any crash (at least not because of this).
Regards,
Eric