Issue #3839: wsgiref should not override a Content-Length header set by
the application.  Initial patch by Clovis Fabricio.
diff --git a/Lib/wsgiref/handlers.py b/Lib/wsgiref/handlers.py
index 6d6f80f..67064a6 100644
--- a/Lib/wsgiref/handlers.py
+++ b/Lib/wsgiref/handlers.py
@@ -302,7 +302,9 @@
     def finish_content(self):
         """Ensure headers and content have both been sent"""
         if not self.headers_sent:
-            self.headers['Content-Length'] = "0"
+            # Only zero Content-Length if not set by the application (so
+            # that HEAD requests can be satisfied properly, see #3839)
+            self.headers.setdefault('Content-Length', "0")
             self.send_headers()
         else:
             pass # XXX check if content-length was too short?