First off, I don't even pretend to have a good comprehension of how remoting works. What I do know is that right now the compiler generated classes derive directly from Object, and somehow this is bad for remoting, instead they should derive from MarshalByReferenceObject.