A method for a peer system (3005, 105B) of connecting peer systems in a peer-to-peer relay network, comprising: maintaining, at the peer systems, respective redundancy lists indicating other peers to which a respective peer will not send messages that originate from a designated peer; and if a first peer disconnects from the network, leaving one or more disconnected peer systems in the network that were previously connected to the first peer, sending a clear redundancy message from the or each disconnected peer system to one or more member peer systems (105D, 105E) in the peer-to-peer relay network, the clear redundancy message indicating the respective disconnected peer system and enabling the one or more member peer systems to remove the disconnected peer system from their respective redundancy list; sending a connection available message from the disconnected peer system to the one or more member peer systems in the peer-to-peer relay network when said disconnected peer system has a number of open connections to member systems that is less than a connection limit; receiving a connection available response from at least one of said one or more member peer systems, wherein each connection available response is positive or negative, and a positive join response indicates the sending member peer system has an available connection and a negative join response indicates the sending member peer system does not have an available connection; selecting a member peer system according to a set of one or more connection rules; and opening a connection with said selected member peer system, wherein each member peer system is connected to a number of other member peer systems that is less than or equal to said connection limit and each member peer system stores a set of one or more relay rules for relaying data to the other member peer systems connected to that member peer system. maintaining, at the peer systems, respective redundancy lists indicating other peers to which a respective peer will not send messages that originate from a designated peer; and if a first peer disconnects from the network, leaving one or more disconnected peer systems in the network that were previously connected to the first peer, sending a clear redundancy message from the or each disconnected peer system to one or more member peer systems (105D, 105E) in the peer-to-peer relay network, the clear redundancy message indicating the respective disconnected peer system and enabling the one or more member peer systems to remove the disconnected peer system from their respective redundancy list; sending a connection available message from the disconnected peer system to the one or more member peer systems in the peer-to-peer relay network when said disconnected peer system has a number of open connections to member systems that is less than a connection limit; receiving a connection available response from at least one of said one or more member peer systems, wherein each connection available response is positive or negative, and a positive join response indicates the sending member peer system has an available connection and a negative join response indicates the sending member peer system does not have an available connection; selecting a member peer system according to a set of one or more connection rules; and opening a connection with said selected member peer system, sending a clear redundancy message from the or each disconnected peer system to one or more member peer systems (105D, 105E) in the peer-to-peer relay network, the clear redundancy message indicating the respective disconnected peer system and enabling the one or more member peer systems to remove the disconnected peer system from their respective redundancy list; sending a connection available message from the disconnected peer system to the one or more member peer systems in the peer-to-peer relay network when said disconnected peer system has a number of open connections to member systems that is less than a connection limit; receiving a connection available response from at least one of said one or more member peer systems, wherein each connection available response is positive or negative, and a positive join response indicates the sending member peer system has an available connection and a negative join response indicates the sending member peer system does not have an available connection; selecting a member peer system according to a set of one or more connection rules; and opening a connection with said selected member peer system, wherein each member peer system is connected to a number of other member peer systems that is less than or equal to said connection limit and each member peer system stores a set of one or more relay rules for relaying data to the other member peer systems connected to that member peer system.