Hi again, IFeed is my interface and it is derived from IDispatch. The class that implements IFeed is CFeedCOM... i think i'm going to post it... class CFeedCOM : public CReferenceCountedObject, public IFeed, public ISupportErrorInfo, public IConnectionPointContainerImpl, public CProxy_IFeedEvents CReferenceCountedObject is taken from Lim Bio Liong (this guy have saved my life with his articles). The reason I wanted to know what happens under the hood of an object creation is: When a client fails (sometimes, not always) the next client trying to connect to the server doesn't follow the same steps that the previous one. Instead of querying all the interfaces posted in my previous message, my object is asked for: 1. IUnknown 2. IMarshal x2 3. {0000001B-0000-0000-C000-000000000046} 4. IID_IUnknown And now, something happens, and my object is released until m_cRef goes to zero. Then, QI is called for IManagedObject, m_cRef is incremented to 2, and again released until zero. This causes the destruction of my object of course what I'm trying to avoid. I don't know if I explained the problem. I only want to know what is happening there. Thanks for answering. Best regards, Gizzo.