Index: modules/ssl/ssl_engine_io.c
===================================================================
--- modules/ssl/ssl_engine_io.c	(revision 1727923)
+++ modules/ssl/ssl_engine_io.c	(working copy)
@@ -147,6 +147,9 @@ static int bio_filter_out_flush(BIO *bio)
     bio_filter_out_ctx_t *outctx = (bio_filter_out_ctx_t *)(bio->ptr);
     apr_bucket *e;
 
+    ap_log_cerror(APLOG_MARK, APLOG_NOTICE, 0, outctx->c,
+                  "bio[%pp] out: FLUSH", bio);
+
     AP_DEBUG_ASSERT(APR_BRIGADE_EMPTY(outctx->bb));
 
     e = apr_bucket_flush_create(outctx->bb->bucket_alloc);
@@ -222,9 +225,15 @@ static int bio_filter_out_write(BIO *bio, const ch
      need_flush = SSL_in_connect_init(outctx->filter_ctx->pssl);
 #endif
     if (need_flush) {
+        ap_log_cerror(APLOG_MARK, APLOG_NOTICE, 0, outctx->c,
+                      "bio[%pp] out: flush %d bytes", bio, inl);
         e = apr_bucket_flush_create(outctx->bb->bucket_alloc);
         APR_BRIGADE_INSERT_TAIL(outctx->bb, e);
     }
+    else {
+        ap_log_cerror(APLOG_MARK, APLOG_NOTICE, 0, outctx->c,
+                      "bio[%pp] out: pass %d bytes", bio, inl);
+    }
 
     if (bio_filter_out_pass(outctx) < 0) {
         return -1;
@@ -499,6 +508,10 @@ static int bio_filter_in_read(BIO *bio, char *in,
 
     inctx->rc = brigade_consume(inctx->bb, block, in, &inl);
 
+    ap_log_cerror(APLOG_MARK, APLOG_NOTICE, inctx->rc,
+                  SSL_get_app_data(inctx->filter_ctx->pssl),
+                  "bio[%pp] in: read %" APR_SIZE_T_FMT " bytes", bio, inl);
+
     if (inctx->rc == APR_SUCCESS) {
         return (int)inl;
     }
@@ -1622,6 +1635,10 @@ static apr_status_t ssl_io_filter_output(ap_filter
         apr_bucket *bucket = APR_BRIGADE_FIRST(bb);
 
         if (APR_BUCKET_IS_METADATA(bucket)) {
+            ap_log_cerror(APLOG_MARK, APLOG_NOTICE, 0, f->c,
+                          "bio[%pp] out: METADATA %s",
+                          filter_ctx->pbioWrite,
+                          bucket->type->name);
             /* Pass through metadata buckets untouched.  EOC is
              * special; terminate the SSL layer first. */
             if (AP_BUCKET_IS_EOC(bucket)) {
@@ -1634,7 +1651,11 @@ static apr_status_t ssl_io_filter_output(ap_filter
              * outctx->bb as a true buffer and interleave these with
              * data buckets. */
             APR_BUCKET_REMOVE(bucket);
+#if 0
+            APR_BRIGADE_INSERT_TAIL(outctx->bb, bucket);
+#else
             APR_BRIGADE_INSERT_HEAD(outctx->bb, bucket);
+#endif
             status = ap_pass_brigade(f->next, outctx->bb);
             if (status == APR_SUCCESS && f->c->aborted)
                 status = APR_ECONNRESET;
Index: modules/http/http_request.c
===================================================================
--- modules/http/http_request.c	(revision 1727923)
+++ modules/http/http_request.c	(working copy)
@@ -254,6 +254,10 @@ static void check_pipeline(conn_rec *c, apr_bucket
                               "Can't consume pipelined empty lines");
                 c->keepalive = AP_CONN_CLOSE;
             }
+            else {
+                ap_log_cerror(APLOG_MARK, APLOG_NOTICE, rv, c,
+                              "check_pipeline: no data");
+            }
             break;
         }
 
@@ -284,6 +288,10 @@ static void check_pipeline(conn_rec *c, apr_bucket
             break;
         }
 
+        ap_log_cerror(APLOG_MARK, APLOG_NOTICE, rv, c,
+                      "check_pipeline: got 0x%x",
+                      (int)(cr ? buf[1] : buf[0]));
+
         if (mode == AP_MODE_READBYTES) {
             mode = AP_MODE_SPECULATIVE;
             cr = 0;
@@ -319,6 +327,11 @@ static void check_pipeline(conn_rec *c, apr_bucket
             c->keepalive = AP_CONN_CLOSE;
         }
     }
+
+    ap_log_cerror(APLOG_MARK, APLOG_NOTICE, rv, c,
+                  "check_pipeline: data_in_input_filters = %i",
+                  c->data_in_input_filters);
+
 }
 
 
Index: server/core_filters.c
===================================================================
--- server/core_filters.c	(revision 1727923)
+++ server/core_filters.c	(working copy)
@@ -465,6 +465,13 @@ apr_status_t ap_core_output_filter(ap_filter_t *f,
      */
 
     if (new_bb == NULL) {
+        apr_off_t blen;
+
+        rv = apr_brigade_length(bb, 0, &blen);
+        ap_log_cerror(APLOG_MARK, APLOG_NOTICE, rv, c,
+                      "core_output_filter: sending %" APR_OFF_T_FMT " bytes",
+                      blen);
+
         rv = send_brigade_nonblocking(net->client_socket, bb,
                                       &(ctx->bytes_written), c);
         if (rv != APR_SUCCESS && !APR_STATUS_IS_EAGAIN(rv)) {
@@ -476,6 +483,12 @@ apr_status_t ap_core_output_filter(ap_filter_t *f,
             return rv;
         }
         setaside_remaining_output(f, ctx, bb, c);
+
+        rv = apr_brigade_length(ctx->buffered_bb, 0, &blen);
+        ap_log_cerror(APLOG_MARK, APLOG_NOTICE, rv, c,
+                      "core_output_filter: remaining %" APR_OFF_T_FMT " bytes",
+                      blen);
+
         return APR_SUCCESS;
     }
 
@@ -786,6 +799,10 @@ static apr_status_t writev_nonblocking(apr_socket_
     while (bytes_written < bytes_to_write) {
         apr_size_t n = 0;
         rv = apr_socket_sendv(s, vec + offset, nvec - offset, &n);
+        ap_log_cerror(APLOG_MARK, APLOG_NOTICE, 0, c,
+                      "core_output_filter: sent %" APR_SIZE_T_FMT
+                      " on  %" APR_SIZE_T_FMT" bytes",
+                      n, bytes_to_write - bytes_written);
         if (n > 0) {
             bytes_written += n;
             for (i = offset; i < nvec; ) {
