Index: HttpMethodBase.java
===================================================================
RCS file: /home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpMethodBase.java,v
retrieving revision 1.28
diff -u -b -r1.28 HttpMethodBase.java
--- HttpMethodBase.java	16 Apr 2002 14:30:42 -0000	1.28
+++ HttpMethodBase.java	19 Apr 2002 19:49:40 -0000
@@ -1032,6 +1032,8 @@
         }
         responseHeaders.clear();
 
+        String name = null;
+        String value = null;
         for(;;) {
             String line = conn.readLine();
             if ((line == null) || (line.length() < 1)) {
@@ -1039,20 +1041,42 @@
             }
 
             // Parse the header name and value
+            // Check for folded headers first
+            // Detect LWS-char see HTTP/1.0 or HTTP/1.1 Section 2.2 
+            // discussion on folded headers
+            boolean isFolded = false;
+            if ( line.charAt(0) == ' ' || line.charAt(0) == '\t' )
+            {
+                // we have continuation folded header
+                // so append value
+                isFolded = true;
+                value = line.substring(1).trim();
+            }
+            else
+            {
+                // Otherwise we should have normal HTTP header line
             int colon = line.indexOf(":");
             if (colon < 0) {
                 throw new HttpException("Unable to parse header: " + line);
             }
-            String name = line.substring(0, colon).trim();
+                name = line.substring(0, colon).trim();
+                value = line.substring(colon + 1).trim();
+            }
             String match = name.toLowerCase();
-            String value = line.substring(colon + 1).trim();
             Header header = (Header)(responseHeaders.get(match));
             if (null == header) {
                 header = new Header(name, value);
             } else {
                 String oldvalue =  header.getValue();
                 if (null != oldvalue) {
+                    if ( isFolded ) {
+                        // LWS becomes space plus extended value
+                        header = new Header(name,oldvalue + " " + value);
+                    }
+                    else {
+                        // Append additional header value
                     header = new Header(name,oldvalue + ", " + value);
+                    }
                 } else {
                     header = new Header(name,value);
                 }

