A time reference system for generating a time reference signal from signals produced by a global navigation satellite constellation, wherein the system comprises: a satellite signal receiver (10A, 10B) having a radio frequency stage for receiving and down-converting code-modulated signals from a plurality of satellites, said satellites belonging to said global navigation satellite constellation and a correlator to receive, track and decode the down-converted satellite signals to provide signals containing partial pseudo-range measurements for respective satellites, a data processing arrangement (14, 16, 18) configured to receive signals containing assistance data from a source other than the received and down-converted satellite signals and the signals containing partial pseudo-range measurements, to perform data-bit synchronisation in which the bit edges of a data bit stream carried by the received satellite signals are identified, and to perform correlation of pre-selected data sequences in the data stream to resolve time ambiguities, and to compute the time reference signal based on the assistance data, the partial pseudo-range measurements and code-tracking outputs from the satellite signal receiver, the data-bit synchronisation and the data sequence correlation, or to compute a position-velocity-time solution using time-of-arrival measurements of signals received by the receiver from the satellites, and to perform correlation of the data bit stream in the received and down-converted satellite signals with pre-selected data sequences, and, using all three of the data-bit synchronisation, the position-velocity-time solution, and the data bit stream correlation to compute the time reference signal. a satellite signal receiver (10A, 10B) having a radio frequency stage for receiving and down-converting code-modulated signals from a plurality of satellites, said satellites belonging to said global navigation satellite constellation and a correlator to receive, track and decode the down-converted satellite signals to provide signals containing partial pseudo-range measurements for respective satellites, a data processing arrangement (14, 16, 18) configured to receive signals containing assistance data from a source other than the received and down-converted satellite signals and the signals containing partial pseudo-range measurements, to perform data-bit synchronisation in which the bit edges of a data bit stream carried by the received satellite signals are identified, and to perform correlation of pre-selected data sequences in the data stream to resolve time ambiguities, and to compute the time reference signal based on the assistance data, the partial pseudo-range measurements and code-tracking outputs from the satellite signal receiver, the data-bit synchronisation and the data sequence correlation, or to compute a position-velocity-time solution using time-of-arrival measurements of signals received by the receiver from the satellites, and to perform correlation of the data bit stream in the received and down-converted satellite signals with pre-selected data sequences, and, using all three of the data-bit synchronisation, the position-velocity-time solution, and the data bit stream correlation to compute the time reference signal.