Index: wp-includes/http.php
===================================================================
--- wp-includes/http.php	(revision 8527)
+++ wp-includes/http.php	(working copy)
@@ -170,7 +170,7 @@
 	 * @param string $url URI resource.
 	 * @param str|array $args Optional. Override the defaults.
 	 * @param string|array $headers Optional. Either the header string or array of Header name and value pairs. Expects sanitized.
-	 * @param string $body Optional. The body that should be sent. Expected to be already processed.
+	 * @param string $body Optional. The body that should be sent. Will be automatically escaped and processed.
 	 * @return boolean
 	 */
 	function request($url, $args = array(), $headers = null, $body = null) {
@@ -195,10 +195,14 @@
 		if ( ! isset($headers['user-agent']) || ! isset($headers['User-Agent']) )
 			$headers['user-agent'] = $r['user-agent'];
 
-		if ( is_null($body) )
+		if ( ! is_null($body) ) {
+			if ( ! is_string($body) )
+				$body = http_build_query($body);
+			
+			$transport = WP_Http::_postTransport();
+		} else {
 			$transport = WP_Http::_getTransport();
-		else
-			$transport = WP_Http::_postTransport();
+		}
 
 		return $transport->request($url, $r, $headers, $body);
 	}
