diff --git a/src/main/io/gps.c b/src/main/io/gps.c index 3d2afe754b4..b3e0a1fb893 100755 --- a/src/main/io/gps.c +++ b/src/main/io/gps.c @@ -600,8 +600,8 @@ bool gpsUpdate(void) // Call GPS protocol thread gpsProviders[gpsState.gpsConfig->provider].protocol(); - // Check for GPS timeout - if ((millis() - gpsState.lastMessageMs) > gpsState.baseTimeoutMs) { + // Check for GPS timeout: the protocol may ask for longer, never for less than the base + if ((millis() - gpsState.lastMessageMs) > MAX(gpsState.timeoutMs, gpsState.baseTimeoutMs)) { sensorsClear(SENSOR_GPS); DISABLE_STATE(GPS_FIX); gpsSol.fixType = GPS_NO_FIX;