In a synchronous environment, when using WS-Addressing, only services need to have WS-Addressing EndpointReferences. Clients need to to have an implementation that supports WS-Addressing when either (1) the service being invoked is acessed via a WS-Addressing EndpointReference, or (2) the service being invoked uses an EndpointRefernce in a wsdl:message on one of its wsdl:operations. Having a client implementation that supports invoking services via WS-Addressing, does not mean the client itself is a Web Service. In the same way, that client software that invokes a relational database, does not imply that the client itself has to be a relational database - just that the client software has to have access to an implementation of something like JDBC to perform the database access. In an asynchronous request-response environment, where a service is invoked through an EndpointReference, the WS-Addressing reply destination MUST point to a WS-Addressing EndpointReference to target the response. The reply-to address may or may not point to the client that issued the request. If the reply-to address does point to the client that issued the request, then the client also has to be a Web Service.