My COM Object is an ATL In-Proc DLL server. From the Client App I created the COM object and get the Interface pointer using CoCreateInstance. I then pass this interface pointer to a worker thread by marshaling the pointer using AtlMarshalPtrInproc and unmarshal the interface pointer in the worker thread using AtlUnmarshalPtr. So far It only works OK on Windows NT but not Windows 95 both version A and OSR2. I've not compiled and registered the Proxy-Stub DLL generated by the MIDL compiler. Is it nescessary to use this proxy-stub DLL when you need to marshal the interface pointer and when is it a must to use this DLL??