A dual-antenna positioning system comprising: a first global navigation satellite system (GNSS) antenna/receiver located at a first position, wherein the first GNSS antenna/receiver calculates a first pseudo-range (R1) based on a received GNSS signal ; a second GNSS antenna/receiver located at a second position a known distance (d) from the first GNSS antenna/receiver , wherein the second GNSS antenna/receiver calculates a second pseudo-range (R2) based on a received GNSS signal ; and a GNSS processor system configured to receive the first pseudo-range (R1) and the second pseudo-range (R2), wherein in response to the processor system identifying one of the first and second pseudo-ranges (R1, R2) as erroneous and one of the first and second pseudo-ranges (R1, R2) as valid, the processing system calculates a corrected pseudo-range (R2') and utilizes the corrected pseudo-range (R2') and the valid pseudo-range (R1) to determine GNSS position fix estimates for the first GNSS antenna/receiver and the second GNSS antenna/receiver , and characterised in that the GNSS processing system calculates the corrected pseudo-range (R2') based on the valid pseudo-range (R1), the known distance (d) between the first GNSS antenna/receiver and the second GNSS antenna/receiver , and an angle of arrival (AoA) of the received GNSS signal at the GNSS antenna/receiver that generated the valid pseudo-range (R1), and wherein the GNSS processing system calculates the AoA of the received GNSS signal based on a current position of the GNSS antenna/receiver that generated the valid pseudo-range, an orientation estimate of the dual-antenna positioning system and a known position of a GNSS satellite from which the received GNSS signal originated. a first global navigation satellite system (GNSS) antenna/receiver located at a first position, wherein the first GNSS antenna/receiver calculates a first pseudo-range (R1) based on a received GNSS signal ; a second GNSS antenna/receiver located at a second position a known distance (d) from the first GNSS antenna/receiver , wherein the second GNSS antenna/receiver calculates a second pseudo-range (R2) based on a received GNSS signal ; and a GNSS processor system configured to receive the first pseudo-range (R1) and the second pseudo-range (R2), wherein in response to the processor system identifying one of the first and second pseudo-ranges (R1, R2) as erroneous and one of the first and second pseudo-ranges (R1, R2) as valid, the processing system calculates a corrected pseudo-range (R2') and utilizes the corrected pseudo-range (R2') and the valid pseudo-range (R1) to determine GNSS position fix estimates for the first GNSS antenna/receiver and the second GNSS antenna/receiver , and characterised in that the GNSS processing system calculates the corrected pseudo-range (R2') based on the valid pseudo-range (R1), the known distance (d) between the first GNSS antenna/receiver and the second GNSS antenna/receiver , and an angle of arrival (AoA) of the received GNSS signal at the GNSS antenna/receiver that generated the valid pseudo-range (R1), and wherein the GNSS processing system calculates the AoA of the received GNSS signal based on a current position of the GNSS antenna/receiver that generated the valid pseudo-range, an orientation estimate of the dual-antenna positioning system and a known position of a GNSS satellite from which the received GNSS signal originated. <EOS>