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 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 based on a received GNSS signal; and a GNSS processor system configured to receive the first pseudo-range and the second pseudo-range, 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 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, 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, 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 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 based on a received GNSS signal; and a GNSS processor system configured to receive the first pseudo-range and the second pseudo-range, 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 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, 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, 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.