diff --git a/Lib/test/output/test_httplib b/Lib/test/output/test_httplib
index d9b3fa1..811e680 100644
--- a/Lib/test/output/test_httplib
+++ b/Lib/test/output/test_httplib
@@ -8,3 +8,4 @@
 reply: 'HTTP/1.1 200 OK\r\n'
 header: Set-Cookie: Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"
 header: Set-Cookie: Part_Number="Rocket_Launcher_0001"; Version="1"; Path="/acme"
+
diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py
index 4d8dbc8..8764455 100644
--- a/Lib/test/test_httplib.py
+++ b/Lib/test/test_httplib.py
@@ -11,48 +11,71 @@
             raise httplib.UnimplementedFileMode()
         return StringIO.StringIO(self.text)
 
-# Test HTTP status lines
+# Collect output to a buffer so that we don't have to cope with line-ending
+# issues across platforms.  Specifically, the headers will have \r\n pairs
+# and some platforms will strip them from the output file.
 
-body = "HTTP/1.1 200 Ok\r\n\r\nText"
-sock = FakeSocket(body)
-resp = httplib.HTTPResponse(sock, 1)
-resp.begin()
-print resp.read()
-resp.close()
+import sys
 
-body = "HTTP/1.1 400.100 Not Ok\r\n\r\nText"
-sock = FakeSocket(body)
-resp = httplib.HTTPResponse(sock, 1)
-try:
-    resp.begin()
-except httplib.BadStatusLine:
-    print "BadStatusLine raised as expected"
-else:
-    print "Expect BadStatusLine"
-
-# Check invalid host_port
-
-for hp in ("www.python.org:abc", "www.python.org:"):
+def test():
+    buf = StringIO.StringIO()
+    _stdout = sys.stdout
     try:
-        h = httplib.HTTP(hp)
-    except httplib.InvalidURL:
-        print "InvalidURL raised as expected"
-    else:
-        print "Expect InvalidURL"
+        sys.stdout = buf
+        _test()
+    finally:
+        sys.stdout = _stdout
 
-# test response with multiple message headers with the same field name.
-text = ('HTTP/1.1 200 OK\r\n'
-        'Set-Cookie: Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"\r\n'
-        'Set-Cookie: Part_Number="Rocket_Launcher_0001"; Version="1";'
-        ' Path="/acme"\r\n'
-        '\r\n'
-        'No body\r\n')
-hdr = ('Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"'
-       ', '
-       'Part_Number="Rocket_Launcher_0001"; Version="1"; Path="/acme"')
-s = FakeSocket(text)
-r = httplib.HTTPResponse(s, 1)
-r.begin()
-cookies = r.getheader("Set-Cookie")
-if cookies != hdr:
-    raise AssertionError, "multiple headers not combined properly"
+    # print individual lines with endings stripped
+    s = buf.getvalue()
+    for line in s.split("\n"):
+        print line.strip()
+
+def _test():
+    # Test HTTP status lines
+
+    body = "HTTP/1.1 200 Ok\r\n\r\nText"
+    sock = FakeSocket(body)
+    resp = httplib.HTTPResponse(sock, 1)
+    resp.begin()
+    print resp.read()
+    resp.close()
+
+    body = "HTTP/1.1 400.100 Not Ok\r\n\r\nText"
+    sock = FakeSocket(body)
+    resp = httplib.HTTPResponse(sock, 1)
+    try:
+        resp.begin()
+    except httplib.BadStatusLine:
+        print "BadStatusLine raised as expected"
+    else:
+        print "Expect BadStatusLine"
+
+    # Check invalid host_port
+
+    for hp in ("www.python.org:abc", "www.python.org:"):
+        try:
+            h = httplib.HTTP(hp)
+        except httplib.InvalidURL:
+            print "InvalidURL raised as expected"
+        else:
+            print "Expect InvalidURL"
+
+    # test response with multiple message headers with the same field name.
+    text = ('HTTP/1.1 200 OK\r\n'
+            'Set-Cookie: Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"\r\n'
+            'Set-Cookie: Part_Number="Rocket_Launcher_0001"; Version="1";'
+            ' Path="/acme"\r\n'
+            '\r\n'
+            'No body\r\n')
+    hdr = ('Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"'
+           ', '
+           'Part_Number="Rocket_Launcher_0001"; Version="1"; Path="/acme"')
+    s = FakeSocket(text)
+    r = httplib.HTTPResponse(s, 1)
+    r.begin()
+    cookies = r.getheader("Set-Cookie")
+    if cookies != hdr:
+        raise AssertionError, "multiple headers not combined properly"
+
+test()
