1. A software update system comprising: a client device having non-OS system software to be updated; a client updating server located remotely from the client device and capable of communicating with the client device; and a device capability manager arranged to access technical capability data relating to the client device; wherein the client updating server is arranged to retrieve a first update required to update at least part of the non-OS system software of the client device; the client updating server comprises an update optimiser arranged to cooperate with the device capability manager to determine an organisational scheme to apply to the first update so as to optimise updating of the client device, the determined organisational scheme being compatible with a technical capability of the client device, and the update optimiser is arranged to identify a recovery function to recover the first update from an instance of the first update organised in accordance with the selected organisational scheme; the device capability manager is arranged to use the capability data in order to determine necessary functionality required by the client device to implement the recovery function identified by the update optimiser; the client updating server comprising an update package generator responsive to the update optimiser and arranged to generate an update package comprising a second update to enable the client device to support the recovery function; the client updating server comprises an update communications unit arranged to communicate the update package to the client device; and the client device is arranged to receive the update package and extract and install the second update.