SF bug 622042: Don't expect response body from HEAD request.

Bug fix candidate.
diff --git a/Lib/httplib.py b/Lib/httplib.py
index caf6ccd..9527e29 100644
--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -208,10 +208,11 @@
 
     # See RFC 2616 sec 19.6 and RFC 1945 sec 6 for details.
 
-    def __init__(self, sock, debuglevel=0, strict=0):
+    def __init__(self, sock, debuglevel=0, strict=0, method=None):
         self.fp = sock.makefile('rb', 0)
         self.debuglevel = debuglevel
         self.strict = strict
+        self._method = method
 
         self.msg = None
 
@@ -326,7 +327,8 @@
         # does the body have a fixed length? (of zero)
         if (status == 204 or            # No Content
             status == 304 or            # Not Modified
-            100 <= status < 200):       # 1xx codes
+            100 <= status < 200 or      # 1xx codes
+            self._method == 'HEAD'):
             self.length = 0
 
         # if the connection remains open, and we aren't using chunked, and
@@ -497,6 +499,7 @@
         self._buffer = []
         self.__response = None
         self.__state = _CS_IDLE
+        self._method = None
 
         self._set_hostport(host, port)
         if strict is not None:
@@ -626,6 +629,8 @@
         else:
             raise CannotSendRequest()
 
+        # Save the method we use, we need it later in the response phase
+        self._method = method
         if not url:
             url = '/'
         str = '%s %s %s' % (method, url, self._http_vsn_str)
@@ -763,9 +768,11 @@
 
         if self.debuglevel > 0:
             response = self.response_class(self.sock, self.debuglevel,
-                                           strict=self.strict)
+                                           strict=self.strict, 
+                                           method=self._method)
         else:
-            response = self.response_class(self.sock, strict=self.strict)
+            response = self.response_class(self.sock, strict=self.strict,
+                                           method=self._method)
 
         response.begin()
         assert response.will_close != _UNKNOWN