diff -r -u httpd-2.0.47-metuxmpm-r2/server/mpm/experimental/metuxmpm/metuxmpm.c httpd-2.0.47-metuxmpm-r3/server/mpm/experimental/metuxmpm/metuxmpm.c
--- httpd-2.0.47-metuxmpm-r2/server/mpm/experimental/metuxmpm/metuxmpm.c	2003-08-08 14:03:11.000000000 +0200
+++ httpd-2.0.47-metuxmpm-r3/server/mpm/experimental/metuxmpm/metuxmpm.c	2003-08-08 14:02:19.000000000 +0200
@@ -71,9 +71,9 @@
 */
     
 /* -- build configuration -- manly for debugging -- */
-/*
-# define MPM_METUXMPM_DEBUG
-*/
+
+/* #define MPM_METUXMPM_DEBUG */
+
 #define MPM_THREAD_ACCEPT_LOCK
 
 #include "apr_hash.h"
@@ -862,7 +862,6 @@
     struct msghdr msg;
     struct cmsghdr *cmsg;
     char headers[HUGE_STRING_LEN];
-    char request_body[HUGE_STRING_LEN];
     struct iovec iov;
     int ret, fd_tmp;
     apr_os_sock_t ctrl_sock_fd;
@@ -897,10 +896,8 @@
     apr_os_sock_put((apr_socket_t **)trans_sock, &trans_sock_fd, ptrans);
     apr_os_sock_get(&fd_tmp, *trans_sock);
 
-    strcpy(request_body, strchr(headers, 0) + 1);
-
-    _FDBG("trans_sock=%ld fdx=%d sock_fd=%d headers=\"%s\" body=\"%s\"", 
-	*trans_sock, trans_sock_fd, fd_tmp, &headers, &request_body);
+    _FDBG("trans_sock=%ld fdx=%d sock_fd=%d headers=\"%s\"", 
+	*trans_sock, trans_sock_fd, fd_tmp, &headers);
 
     /* -- store received data into an brigade and add 
           it to the current transaction's pool -- */
@@ -908,9 +905,6 @@
     APR_BRIGADE_INSERT_HEAD(bb, bucket);
     bucket = apr_bucket_socket_create(*trans_sock, alloc);
     APR_BRIGADE_INSERT_HEAD(bb, bucket);
-    bucket = apr_bucket_heap_create(request_body,
-                                    strlen(request_body), NULL, alloc);
-    APR_BRIGADE_INSERT_HEAD(bb, bucket);
     bucket = apr_bucket_heap_create(headers,
                                     strlen(headers), NULL, alloc);
     APR_BRIGADE_INSERT_HEAD(bb, bucket);
@@ -1963,13 +1957,11 @@
     struct msghdr msg;
     struct cmsghdr *cmsg;
     int sock_fd;
-    struct iovec iov[2];
+    struct iovec iov;
     conn_rec *c = r->connection;
     apr_bucket_brigade *bb = apr_brigade_create(r->pool, c->bucket_alloc);
     apr_bucket_brigade *sockbb;
-    char request_body[HUGE_STRING_LEN] = "\0";
     apr_off_t len = 0;
-    apr_size_t l = HUGE_STRING_LEN;
     metuxmpm_header h;
     apr_bucket *sockbuck;
     const apr_array_header_t *headers_in_array;
@@ -2010,13 +2002,6 @@
     if (!sockbuck) _DBG("pass_request(): no sockbuck!", 0);
     sockbb = apr_brigade_split(bb, sockbuck); 
 
-    if (apr_brigade_flatten(bb, request_body, &l) != APR_SUCCESS) 
-    {
-        ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ap_server_conf, 
-                     "Unable to flatten brigade, declining request");
-        return DECLINED;
-    }
-
     apr_os_sock_get(&sock_fd, thesock);
 
     h.p = r->pool;
@@ -2062,16 +2047,13 @@
 			    CRLF, NULL);
     }
 
-    iov[0].iov_base = h.headers;
-    iov[0].iov_len  = strlen(h.headers) + 1;
-    iov[1].iov_base = request_body;
-    iov[1].iov_len  = l + 1;
-_DBG("pass_request(): [POST] body=\"%s\" length=%d", request_body, l);
+    iov.iov_base = h.headers;
+    iov.iov_len  = strlen(h.headers) + 1;
 
     msg.msg_name    = NULL;
     msg.msg_namelen = 0;
-    msg.msg_iov     = iov;
-    msg.msg_iovlen  = 2;
+    msg.msg_iov     = &iov;
+    msg.msg_iovlen  = 1;
 
     cmsg = apr_palloc(r->pool, sizeof(*cmsg) + sizeof(sock_fd));
     cmsg->cmsg_len   = sizeof(*cmsg) + sizeof(sock_fd);
@@ -2084,7 +2066,7 @@
     msg.msg_controllen = cmsg->cmsg_len;
 
     _DBG("pass_request(): Writing message to %d, passing sock_fd:  %d", sconf->child->output, sock_fd);
-    _DBG("pass_request(): header=\"%s\" body=\"%s\" ", h.headers, request_body );
+    _DBG("pass_request(): header=\"%s\" ", h.headers );
     ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ap_server_conf, 
                  "Writing message to %d, passing sd:  %d", sconf->child->output, sock_fd);
 
