Index: tests/test_response.py
===================================================================
--- tests/test_response.py	(Revision 8060)
+++ tests/test_response.py	(Arbeitskopie)
@@ -42,7 +42,9 @@
     req = Request.blank('/')
     req.method = 'HEAD'
     app_iter = StringIO('foo')
-    res = req.get_response(Response(app_iter=app_iter))
+    res = req.get_response(Response(app_iter=app_iter,
+                                    headerlist=[('Content-Length', '42')]))
     assert res.status_int == 200
     assert res.body == ''
+    assert res.headers['Content-Length'] == '42'
     assert app_iter.closed
Index: webob/__init__.py
===================================================================
--- webob/__init__.py	(Revision 8060)
+++ webob/__init__.py	(Arbeitskopie)
@@ -1829,7 +1840,8 @@
                 if hasattr(self._app_iter, 'close'):
                     self._app_iter.close()
             self._app_iter = None
-            self.content_length = len(self._body)
+            if not(self._request) or self._request.method <> 'HEAD':
+                self.content_length = len(self._body)
         return self._body
 
     def _body__set(self, value):

