diff --git a/Doc/library/http.client.rst b/Doc/library/http.client.rst
index bc50423..17373a7 100644
--- a/Doc/library/http.client.rst
+++ b/Doc/library/http.client.rst
@@ -521,6 +521,22 @@
    >>> data2 = r2.read()
    >>> conn.close()
 
+Here is an example session that uses ``HEAD`` method. Note that ``HEAD`` method
+never returns any data. ::
+
+
+   >>> import http.client
+   >>> conn = http.client.HTTPConnection("www.python.org")
+   >>> conn.request("HEAD","/index.html")
+   >>> res = conn.getresponse()
+   >>> print(res.status, res.reason)
+   200 OK
+   >>> data = res.read()
+   >>> print(len(data))
+   0
+   >>> data == b''
+   True
+
 Here is an example session that shows how to ``POST`` requests::
 
    >>> import http.client, urllib.parse
diff --git a/Lib/http/client.py b/Lib/http/client.py
index b9246fd..2ddb014 100644
--- a/Lib/http/client.py
+++ b/Lib/http/client.py
@@ -487,6 +487,9 @@
         if self.fp is None:
             return b""
 
+        if self._method == "HEAD":
+            return b""
+
         if self.chunked:
             return self._read_chunked(amt)
 
diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py
index 84e1f80..6b09e07 100644
--- a/Lib/test/test_httplib.py
+++ b/Lib/test/test_httplib.py
@@ -224,6 +224,23 @@
             finally:
                 resp.close()
 
+    def test_chunked_head(self):
+        chunked_start = (
+            'HTTP/1.1 200 OK\r\n'
+            'Transfer-Encoding: chunked\r\n\r\n'
+            'a\r\n'
+            'hello world\r\n'
+            '1\r\n'
+            'd\r\n'
+        )
+        sock = FakeSocket(chunked_start + '0\r\n')
+        resp = client.HTTPResponse(sock, method="HEAD")
+        resp.begin()
+        self.assertEquals(resp.read(), b'')
+        self.assertEquals(resp.status, 200)
+        self.assertEquals(resp.reason, 'OK')
+        resp.close()
+
     def test_negative_content_length(self):
         sock = FakeSocket(
             'HTTP/1.1 200 OK\r\nContent-Length: -1\r\n\r\nHello\r\n')
diff --git a/Misc/NEWS b/Misc/NEWS
index 2aedcdb..e83285a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -339,6 +339,9 @@
 Library
 -------
 
+- Issue #6312: Fixed http HEAD request when the transfer encoding is chunked.
+  It should correctly return an empty response now.
+
 - Issue #8546: Reject None given as the buffering argument to _pyio.open.
 
 - Issue #8549: Fix compiling the _ssl extension under AIX.  Patch by
