Index: modules/http/http_request.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/http/http_request.c,v
retrieving revision 1.125
diff -u -r1.125 http_request.c
--- modules/http/http_request.c	25 Jan 2002 01:11:46 -0000	1.125
+++ modules/http/http_request.c	1 Mar 2002 20:44:50 -0000
@@ -441,6 +441,8 @@
                                         r->err_headers_out);
     r->subprocess_env = apr_table_overlay(r->pool, rr->subprocess_env,
                                        r->subprocess_env);
+    r->output_filters  = rr->output_filters;
+    r->input_filters   = rr->input_filters;
 }
 
 AP_DECLARE(void) ap_internal_redirect(const char *new_uri, request_rec *r)
Index: server/request.c
===================================================================
RCS file: /home/cvs/httpd-2.0/server/request.c,v
retrieving revision 1.99
diff -u -r1.99 request.c
--- server/request.c	15 Feb 2002 07:43:20 -0000	1.99
+++ server/request.c	1 Mar 2002 20:44:52 -0000
@@ -1492,15 +1492,20 @@
 
     /* start with the same set of output filters */
     if (next_filter) {
+        /* no input filters for a subrequest */
         rnew->output_filters = next_filter;
+        ap_add_output_filter_handle(ap_subreq_core_filter_handle,
+                                    NULL, rnew, rnew->connection); 
     }
     else {
-        rnew->output_filters = r->output_filters;
+        /* If NULL - we are expecting to be internal_fast_redirect'ed
+         * to this subrequest - or this request will never be invoked.
+         * Ignore the original request filter stack entirely, and
+         * drill the input and output stacks back to the connection.
+         */
+        rnew->input_filters = r->connection->input_filters;
+        rnew->output_filters = r->connection->output_filters;
     }
-    ap_add_output_filter_handle(ap_subreq_core_filter_handle,
-                                NULL, rnew, rnew->connection); 
-
-    /* no input filters for a subrequest */
 
     ap_set_sub_req_protocol(rnew, r);
 
