> You are perfectly right. When deriving from a class, the destructor should
> always be virtual in order to call the destructor of the base class.

Hrm... I'd understand it the other way around: it should be virtual so that the correct (of the derived class) destructor is called when the object is destroyed by the framework (probably a call via a pointer to a base class).