Actually Johanna should work around her problem by always instantianting through interface references instead of direct class instances, let an interface control the life time.
COM Interfaces are reference counted, so there is less of an issue if you maintain proper programmer discipline. The smart pointer code on this forum, with different implementations by ASerge, avk too I think, and me, pick and choose, would help her to achieve that with few hassle.
And you do not need FreeAndNil at all...