1. A remote data processing system comprising: a data receiver for receiving a data message; a remote software module arranged to receive the data message from the data receiver, the remote software module including at least a first stage software component cascaded with a second stage software component; and a fault detector associated with the first software stage component and the second software stage component to detect a fault in the remote software module by detecting whether the data message flows entirely through at least one of the first stage software component and the second stage software component.