diff --git a/lib/icinga/service-check.cpp b/lib/icinga/service-check.cpp index f1874d183..5bc4e2bc5 100644 --- a/lib/icinga/service-check.cpp +++ b/lib/icinga/service-check.cpp @@ -254,11 +254,10 @@ void Service::ApplyCheckResult(const Dictionary::Ptr& cr) long attempt = GetCurrentCheckAttempt(); if (cr->Get("state") == StateOK) { - if (old_state != StateOK && old_stateType == StateTypeHard) + if (old_state == StateOK && old_stateType == StateTypeSoft) { hardChange = true; // hard recovery - - if (old_state == StateOK) SetStateType(StateTypeHard); + } attempt = 1; recovery = true;