DEFINE CLASS MyClass As Session ErrorText = "" ErrorOccured = .F. PROTECTED ErrorText, ErrorOccured Function SomeFunction( cPar ) LOCAL lcResult *-- Create Your MTS Object context Here *-- Do some processing to build lcResult lcResult= GetSomeXmlString() IF This.ErrorOccured lcResult = This.ErrorText ENDIF *-- Call SetComplete() Or SetAbort() Here RETURN lcResult ENDFUNC PROTECTED FUNCTION Error( p1,p2,p3 ) This.ErrorOccured = .T. This.ErrorText = GetXmlErrorString(p1,p2,p3) ENDFUNC ENDDEFINE>However, for a stateless COM application like a web app (vfp mtdll), ALWAYS use ComReturnError. This is a good rule-of-thumb for web apps.