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: (a) the magnetometer data received from the first and second magnetometers to provide first and second change signals corresponding to changes in the first and second magnetometer readings from a previously obtained reading during a detection period and (b) a pre-determined threshold that is used to determine whether the first change signal for the first magnetometer is consistent with the second change signal for 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: a first threshold based on an expected drift of the first heading gyro over the detection period, and a second threshold based on an expected drift of the second heading gyro over the detection period, wherein the determination of which of the first or second magnetometers is potentially soft iron disturbed is accomplished by detecting whether the first or second change signal exceeds the first or second threshold; 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: (a) the magnetometer data received from the first and second magnetometers to provide first and second change signals corresponding to changes in the first and second magnetometer readings from a previously obtained reading during a detection period and (b) a pre-determined threshold that is used to determine whether the first change signal for the first magnetometer is consistent with the second change signal for 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: a first threshold based on an expected drift of the first heading gyro over the detection period, and a second threshold based on an expected drift of the second heading gyro over the detection period, wherein the determination of which of the first or second magnetometers is potentially soft iron disturbed is accomplished by detecting whether the first or second change signal exceeds the first or second threshold; 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: (a) the magnetometer data received from the first and second magnetometers to provide first and second change signals corresponding to changes in the first and second magnetometer readings from a previously obtained reading during a detection period and (b) a pre-determined threshold that is used to determine whether the first change signal for the first magnetometer is consistent with the second change signal for 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: a first threshold based on an expected drift of the first heading gyro over the detection period, and a second threshold based on an expected drift of the second heading gyro over the detection period, wherein the determination of which of the first or second magnetometers is potentially soft iron disturbed is accomplished by detecting whether the first or second change signal exceeds the first or second threshold; 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.