Ok it's definitely a problem with the proxy... Set the backend running on its own with httpd -X, run a large (3MB) upload and everything is fine - so no mod_perl/embperl problem... (Thanks Gerald!) Set both the backend and frontend running, both with httpd -X, run the same upload: Frontend appears to accept the upload, but returns a document with no data. Backend bombs out with: [error] CGI.pm: Server closed socket during multipart read (client aborted?) After this, any access to the back-end (directly) returns no data at all and is logged as '200 - ' in the log. This can be repeated consistently, so I guess this is a mod_proxy problem... I have worked around by getting the front-end to run embpcgi.pl as a CGI script for uploads which (so far as I have tested) works fine...