--- modules/filters/mod_filter.c 2010-04-25 21:45:29.000154000 -0500 +++ modules/filters/mod_filter.c 2010-04-25 21:47:14.000089000 -0500 @@ -135,6 +135,13 @@ int err; ap_filter_rec_t *filter = f->frec; + /* We may get called more than once for the same filter + * (e.g. in a subrequest), so let's not clobber ourselves + */ + if(f->ctx) { + return OK; + } + harness_ctx *fctx = apr_pcalloc(f->r->pool, sizeof(harness_ctx)); for (p = filter->providers; p; p = p->next) { if (p->frec->filter_init_func == filter_init) {