A system for compensating for soft iron magnetic disturbances in a heading reference system (100, 200) of a vehicle, the system comprising: a first magnetometer; a second magnetometer located at a different location on the vehicle from the first magnetometer; a first heading gyro coupled to the first magnetometer; a second heading gyro coupled to the second magnetometer; and a processor configured to: receive magnetometer data from the first magnetometer; receive magnetometer data from the second magnetometer; determine whether one of the first or second magnetometers is potentially soft iron disturbed using the magnetometer data received from the first and second magnetometers and a pre-determined threshold that is used to determine whether changes in the magnetometer data from the first magnetometer are consistent with changes in magnetometer data from the second magnetometer; in response to determining that one of the first or second magnetometers is potentially soft iron disturbed, determine which of the first or second magnetometers is potentially soft iron disturbed using the first and second heading gyros, a first threshold based on an expected drift of the first heading gyro, and a second threshold based on an expected drift of the second heading gyro, wherein the first and second thresholds are compared to changes in heading values which are computed using the first and second magnetometers and first and second heading gyros; and compensate for soft iron magnetic disturbance by taking into account measurements of the first heading gyro, the second heading gyro, the first magnetometer, and the second magnetometer, and provide a corrected heading. a first magnetometer; a second magnetometer located at a different location on the vehicle from the first magnetometer; a first heading gyro coupled to the first magnetometer; a second heading gyro coupled to the second magnetometer; and a processor configured to: receive magnetometer data from the first magnetometer; receive magnetometer data from the second magnetometer; determine whether one of the first or second magnetometers is potentially soft iron disturbed using the magnetometer data received from the first and second magnetometers and a pre-determined threshold that is used to determine whether changes in the magnetometer data from the first magnetometer are consistent with changes in magnetometer data from the second magnetometer; in response to determining that one of the first or second magnetometers is potentially soft iron disturbed, determine which of the first or second magnetometers is potentially soft iron disturbed using the first and second heading gyros, a first threshold based on an expected drift of the first heading gyro, and a second threshold based on an expected drift of the second heading gyro, wherein the first and second thresholds are compared to changes in heading values which are computed using the first and second magnetometers and first and second heading gyros; and compensate for soft iron magnetic disturbance by taking into account measurements of the first heading gyro, the second heading gyro, the first magnetometer, and the second magnetometer, and provide a corrected heading. receive magnetometer data from the first magnetometer; receive magnetometer data from the second magnetometer; determine whether one of the first or second magnetometers is potentially soft iron disturbed using the magnetometer data received from the first and second magnetometers and a pre-determined threshold that is used to determine whether changes in the magnetometer data from the first magnetometer are consistent with changes in magnetometer data from the second magnetometer; in response to determining that one of the first or second magnetometers is potentially soft iron disturbed, determine which of the first or second magnetometers is potentially soft iron disturbed using the first and second heading gyros, a first threshold based on an expected drift of the first heading gyro, and a second threshold based on an expected drift of the second heading gyro, wherein the first and second thresholds are compared to changes in heading values which are computed using the first and second magnetometers and first and second heading gyros; and compensate for soft iron magnetic disturbance by taking into account measurements of the first heading gyro, the second heading gyro, the first magnetometer, and the second magnetometer, and provide a corrected heading.