Index: sources/update/MsgLink.h =================================================================== diff -u -ra85b7d29fcd01653f8eafe579f1a6c1ddcac615e -r98d98e443f7f3605abfacf746e8a34ce3c0fc32b --- sources/update/MsgLink.h (.../MsgLink.h) (revision a85b7d29fcd01653f8eafe579f1a6c1ddcac615e) +++ sources/update/MsgLink.h (.../MsgLink.h) (revision 98d98e443f7f3605abfacf746e8a34ce3c0fc32b) @@ -229,7 +229,10 @@ // 2 - Was waiting for timeout but got an ACK. // 3 - Was waiting for timeout but got a NACK. _timeoutMode = TimeoutEnum::None; - for (uint32 effortSpent; effortSpent < maxEffort; effortSpent++) { + for (uint32 effortSpent; + // When None, keep going till maxEffort, when not none, it's event based. + (effortSpent < maxEffort) || (TimeoutEnum::None != _timeoutMode); + effortSpent++) { // No longer expecting! if (!_expecting) { @@ -259,7 +262,6 @@ // retrying something that was significant. _expecting = false; return (_timeoutMode != 3) ? true : false; - } // No retries in _timeoutMode.