An apparatus, comprising: a tunnel server comprising a virtual tunnel interface configured to form tunnels between the tunnel server and a virtual tunnel interface of a communication device , the tunnel server being configured to receive, from the communication device, a first instance of a data unit at a first time via a first tunnel defined between the tunnel server and the communication device and being via a first base station of a first network, the tunnel server being configured to receive, from the communication device, a second instance of the data unit at a second time after the first time via a second tunnel defined between the tunnel server and the communication device and being via a second base station of a second network different from the first network, the tunnel server being configured to drop the second instance of the data unit when the second time is after the first time, the tunnel server configured to send the first instance of the data unit to a destination device based on a destination address within the first instance of the data unit when the second time is after the first time, the virtual tunnel interface of the tunnel server being configured to monitor the quality associated with the communication links between the communication device and the first and second base station, respectively and the tunnel server being configured to terminate the first or second tunnel based on the monitoring of the communication links when delivery of data units through said first or second tunnel represents a small fraction of total data units of a session from the communication device and to the destination device. a tunnel server comprising a virtual tunnel interface configured to form tunnels between the tunnel server and a virtual tunnel interface of a communication device , the tunnel server being configured to receive, from the communication device, a first instance of a data unit at a first time via a first tunnel defined between the tunnel server and the communication device and being via a first base station of a first network, the tunnel server being configured to receive, from the communication device, a second instance of the data unit at a second time after the first time via a second tunnel defined between the tunnel server and the communication device and being via a second base station of a second network different from the first network, the tunnel server being configured to drop the second instance of the data unit when the second time is after the first time, the tunnel server configured to send the first instance of the data unit to a destination device based on a destination address within the first instance of the data unit when the second time is after the first time, the virtual tunnel interface of the tunnel server being configured to monitor the quality associated with the communication links between the communication device and the first and second base station, respectively and the tunnel server being configured to terminate the first or second tunnel based on the monitoring of the communication links when delivery of data units through said first or second tunnel represents a small fraction of total data units of a session from the communication device and to the destination device. <EOS>