A non marshalable COM component is being used from a different apartment/context then the one where it first entered the ...

A non marshalable COM component is being used from a different apartment/context then the one where it first entered the CLR. Since the component is non marshalable, it will be called directly from the current apartment/context. This may cause corruption or data loss if the component does not support being accessed from multiple threads at once. This is most likely caused by a faulty IMarshal implementation on the part of the COM component.