diff -ur nagios-2.2/base/checks.c nagios-2.2.new/base/checks.c --- nagios-2.2/base/checks.c 2006-02-16 04:47:55.000000000 +0000 +++ nagios-2.2.new/base/checks.c 2006-05-16 14:58:54.063374901 +0100 @@ -1100,7 +1100,10 @@ /* check the route to the host if its supposed to be up right now... */ if(temp_host->current_state==HOST_UP){ - route_result=verify_route_to_host(temp_host,CHECK_OPTION_NONE); + /* Only check the host if the service that failed is an active check + We assume that the host that has received a passive check is okay */ + if (temp_service->check_type == SERVICE_CHECK_ACTIVE) + route_result=verify_route_to_host(temp_host,CHECK_OPTION_NONE); #ifdef DEBUG_CHECKS printf("\tSECTION B1\n"); #endif