A controller for a machine-to-machine device, the machine-to-machine device being configured to execute an application and comprising a cellular network interface for wireless communication of data for the application with a cellular network, the controller comprising: a selection portion, configured to select a cellular network from a plurality of available cellular networks, the machine-to-machine device comprising subscription information allowing it to register with more than one of the plurality of available cellular networks, the selected cellular network having a received signal quality measurement of at least a predetermined level; and a control portion arranged to control the cellular network interface to register the machine-to-machine device with the selected cellular network; a packet-switched attach portion, configured to command the cellular network interface to carry out a packet-switched attach and to establish whether the command was successful; a PDP context definition portion, configured to command the cellular network interface to define a PDP context in response to a determination from the packet-switched attach portion that its command was successful and to establish whether the command was successful; and a PDP context initialisation portion, configured to command the cellular network interface to initialise the defined PDP context in response to a determination from the PDP context definition portion that its command was successful and to establish whether the command was successful; wherein the predetermined level for the received signal quality measurement is based upon a quality of service level defined by the application; and wherein the control portion is further configured to control the cellular network interface to deregister the machine-to-machine device from the selected cellular network and to register the machine-to-machine device with another cellular network from the plurality of available cellular networks, in response to an establishment from the packet-switched attach portion, PDP context definition portion or PDP context initialisation portion that their respective command was unsuccessful. a selection portion, configured to select a cellular network from a plurality of available cellular networks, the machine-to-machine device comprising subscription information allowing it to register with more than one of the plurality of available cellular networks, the selected cellular network having a received signal quality measurement of at least a predetermined level; and a control portion arranged to control the cellular network interface to register the machine-to-machine device with the selected cellular network; a packet-switched attach portion, configured to command the cellular network interface to carry out a packet-switched attach and to establish whether the command was successful; a PDP context definition portion, configured to command the cellular network interface to define a PDP context in response to a determination from the packet-switched attach portion that its command was successful and to establish whether the command was successful; and a PDP context initialisation portion, configured to command the cellular network interface to initialise the defined PDP context in response to a determination from the PDP context definition portion that its command was successful and to establish whether the command was successful; wherein the predetermined level for the received signal quality measurement is based upon a quality of service level defined by the application; and wherein the control portion is further configured to control the cellular network interface to deregister the machine-to-machine device from the selected cellular network and to register the machine-to-machine device with another cellular network from the plurality of available cellular networks, in response to an establishment from the packet-switched attach portion, PDP context definition portion or PDP context initialisation portion that their respective command was unsuccessful.