--- server/log.c (revision 447867) +++ server/log.c (working copy) @@ -226,7 +226,7 @@ } static int log_child(apr_pool_t *p, const char *progname, - apr_file_t **fpin) + apr_file_t **fpin, int dummy_stderr) { /* Child process code for 'ErrorLog "|..."'; * may want a common framework for this, since I expect it will @@ -242,7 +242,7 @@ && ((rc = apr_procattr_io_set(procattr, APR_FULL_BLOCK, APR_NO_PIPE, - APR_NO_PIPE)) == APR_SUCCESS) + dummy_stderr ? APR_FULL_BLOCK : APR_NO_PIPE)) == APR_SUCCESS) && ((rc = apr_procattr_error_check_set(procattr, 1)) == APR_SUCCESS) && ((rc = apr_procattr_child_errfn_set(procattr, log_child_errfn)) == APR_SUCCESS)) { char **args; @@ -275,7 +275,7 @@ apr_file_t *dummy = NULL; /* This starts a new process... */ - rc = log_child (p, s->error_fname + 1, &dummy); + rc = log_child (p, s->error_fname + 1, &dummy, 1); if (rc != APR_SUCCESS) { ap_log_error(APLOG_MARK, APLOG_STARTUP, rc, NULL, "Couldn't start ErrorLog process"); @@ -955,7 +955,7 @@ apr_file_t *dummy = NULL; int rc; - rc = log_child(p, program, &dummy); + rc = log_child(p, program, &dummy, 0); if (rc != APR_SUCCESS) { ap_log_error(APLOG_MARK, APLOG_STARTUP, rc, NULL, "Couldn't start piped log process");