The problem is that even though you have the same assembly (common.dll) on both sides, the classes are different. When WebService proxy is created at client side, Visual Studio creates new classes for all classes returned by WebService (based on WSDL). I solved this by not using Visual Studio Web References. Instead I use WSDL.exe on client side and create the proxy class manually. After the creation is done I strip away all the class definitions that are created for parameters and convert the parameters used in web service calls to classes from common assembly. Then I include this file to the project. For more info on WSDL, go to Web Services Description Language Tool (Wsdl.exe)[^] Hope this helps, Mika