The messenger paradigm advocates the exchange of programs called messengers between communicating hosts instead of messages. Each host contains a messenger execution environment called messenger platform. Messengers are expressed in a language understood by all the platforms. A distributed messenger environment is a collection of messenger platforms linked through an unreliable network offering only a datagram service. Provision of coordination services in such an environment has to be handled in a new way since threads of controls are mobile (messengers move from host to host). The classical client/server paradigm based on a data exchange mechanism is not suitable for a messenger environment. In this paper we discuss how communication services might be provided in messenger environments using as an example the distributed semaphore service in the MØ distributed messenger environment. A distributed semaphore allows messengers executing on different hosts to synchronize their execution independently of their physical location.