Index: sources/update/MsgLink.h =================================================================== diff -u -ra7aa183c6847cc21ad3943c61d797c2824edcaf5 -ra85b7d29fcd01653f8eafe579f1a6c1ddcac615e --- sources/update/MsgLink.h (.../MsgLink.h) (revision a7aa183c6847cc21ad3943c61d797c2824edcaf5) +++ sources/update/MsgLink.h (.../MsgLink.h) (revision a85b7d29fcd01653f8eafe579f1a6c1ddcac615e) @@ -233,6 +233,7 @@ // No longer expecting! if (!_expecting) { + // Cancel, etc. break; } @@ -248,14 +249,15 @@ // Wait to either retry or success. if (_ew.wait()) { - _expecting = false; if (TimeoutEnum::Waiting == _timeoutMode) { continue; } + // We got a NACK while timing out, abort this so the user can // note that a long thing failed and can feel they are in control of // retrying something that was significant. + _expecting = false; return (_timeoutMode != 3) ? true : false; }