Index: wp-includes/http.php
===================================================================
--- wp-includes/http.php	(revision 11172)
+++ wp-includes/http.php	(working copy)
@@ -403,17 +403,29 @@
 
 		$cookies = array();
 		$newheaders = array();
+
+		// first, process the HTTP status line
+		if ( false === strpos($headers[0], ':') ) {
+			$tempheader = array_shift($headers);
+			list( , $response_code, $response_msg) = explode(' ', $tempheader, 3);
+			$response['code'] = $response_code;
+			$response['message'] = $response_msg;
+		}
+
+		// combine any headers split over multiple lines
+		if ( sizeof($headers) > 2 )
+			for ( $i=(sizeof($headers)-1); $i>=0; $i-- ) {
+				$c = substr($headers[$i], 0, 1);
+				if ($c == ' ' || $c == "\t") {
+					$headers[$i-1] = rtrim($headers[$i-1]) . ' ' . ltrim($headers[$i]);
+					unset($headers[$i]);
+				}
+			}
+
 		foreach ( $headers as $tempheader ) {
 			if ( empty($tempheader) )
 				continue;
 
-			if ( false === strpos($tempheader, ':') ) {
-				list( , $iResponseCode, $strResponseMsg) = explode(' ', $tempheader, 3);
-				$response['code'] = $iResponseCode;
-				$response['message'] = $strResponseMsg;
-				continue;
-			}
-
 			list($key, $value) = explode(':', $tempheader, 2);
 
 			if ( !empty( $value ) ) {
