Shorter pseudo-code would be void *head = dynamic_cast<void*>(x); x->complete object destructor(); ::operator delete(head); Wouldn't hurt to add this to the document as a note since everyone seems to have gotten it wrong... Jason