Index: src/ZPublisher/HTTPResponse.py =================================================================== --- src/ZPublisher/HTTPResponse.py (revision 121442) +++ src/ZPublisher/HTTPResponse.py (working copy) @@ -338,7 +338,7 @@ name = literal and name or key self.headers[name] = value - def appendHeader(self, name, value, delimiter=","): + def appendHeader(self, name, value, delimiter=", "): """ Append a value to an HTTP return header. Set an HTTP return header "name" with value "value", @@ -353,7 +353,7 @@ headers = self.headers if headers.has_key(name): h = headers[name] - h = "%s%s\r\n\t%s" % (h, delimiter, value) + h = "%s%s%s" % (h, delimiter, value) else: h = value self.setHeader(name,h, scrubbed=True) Index: src/ZPublisher/tests/testHTTPResponse.py =================================================================== --- src/ZPublisher/tests/testHTTPResponse.py (revision 121442) +++ src/ZPublisher/tests/testHTTPResponse.py (working copy) @@ -445,13 +445,13 @@ response = self._makeOne() response.setHeader('foo', 'bar') response.appendHeader('foo', 'foo') - self.assertEqual(response.headers.get('foo'), 'bar,\r\n\tfoo') + self.assertEqual(response.headers.get('foo'), 'bar, foo') def test_appendHeader_w_existing_case_insenstative(self): response = self._makeOne() response.setHeader('xxx', 'bar') response.appendHeader('XXX', 'foo') - self.assertEqual(response.headers.get('xxx'), 'bar,\r\n\tfoo') + self.assertEqual(response.headers.get('xxx'), 'bar, foo') def test_appendHeader_drops_CRLF(self): # RFC2616 disallows CRLF in a header value.