Index: modules/filters/mod_reqtimeout.c =================================================================== --- modules/filters/mod_reqtimeout.c (revision 1688412) +++ modules/filters/mod_reqtimeout.c (working copy) @@ -178,21 +178,13 @@ reqtimeout_con_cfg *ccfg = f->ctx; if (ccfg->in_keep_alive) { + if (mode != AP_MODE_SPECULATIVE) { + ccfg->in_keep_alive = 0; + } /* For this read, the normal keep-alive timeout must be used */ - ccfg->in_keep_alive = 0; return ap_get_brigade(f->next, bb, mode, block, readbytes); } - if (block == APR_NONBLOCK_READ && mode == AP_MODE_SPECULATIVE) { - /* The source of these above us in the core is check_pipeline(), which - * is between requests but before this filter knows to reset timeouts - * during log_transaction(). If they appear elsewhere, just don't - * check or extend the time since they won't block and we'll see the - * bytes again later - */ - return ap_get_brigade(f->next, bb, mode, block, readbytes); - } - if (ccfg->new_timeout > 0) { /* set new timeout */ now = apr_time_now();