Index: modules/http/http_protocol.c =================================================================== --- modules/http/http_protocol.c (revision 1645847) +++ modules/http/http_protocol.c (working copy) @@ -315,13 +315,13 @@ * to compare the entity tags in If-Match. */ if ((if_match = apr_table_get(r->headers_in, "If-Match")) != NULL) { - if (if_match[0] == '*' - || ((etag = apr_table_get(headers, "ETag")) == NULL - && !ap_find_etag_strong(r->pool, if_match, etag))) { - return AP_CONDITION_STRONG; + if (if_match[0] != '*' + && ((etag = apr_table_get(headers, "ETag")) == NULL + || !ap_find_etag_strong(r->pool, if_match, etag))) { + return AP_CONDITION_NOMATCH; } else { - return AP_CONDITION_NOMATCH; + return AP_CONDITION_STRONG; } } @@ -552,9 +552,6 @@ */ cond = ap_condition_if_match(r, r->headers_out); if (AP_CONDITION_NOMATCH == cond) { - not_modified = 0; - } - else if (cond >= AP_CONDITION_WEAK) { return HTTP_PRECONDITION_FAILED; }