We study the distributed infrastructures required for location-independent communication between mobile agents. These infrastructures are problematic: different applications may have very different patterns of migration and communication, and require different performance and robustness properties. Some applications also demand disconnected operation (on laptop computers). Algorithms must be designed with these mind. In this paper we describe simple algorithms and techniques such as central server, forwarding pointers, broadcast, group communication, and hierarchical location directory, and use Nomadic Pict to develop and implement an example infrastructure. The infrastructure can tolerate site disconnection; a user can disconnect the computer from the network, work in a disconnected mode for extended periods, and later reconnect. All messages that cannot be delivered to a laptop or sent out from the laptop due to disconnection will be transparently delivered upon reconnection.