Index: wp-includes/class-http.php
===================================================================
--- wp-includes/class-http.php	(revision 17565)
+++ wp-includes/class-http.php	(working copy)
@@ -218,14 +218,15 @@
 	 * @return array|object Array containing 'headers', 'body', 'response', 'cookies'. A WP_Error instance upon error
 	 */
 	private function _dispatch_request($url, $args) {
-		static $transports = null;
-		if ( is_null($transports) )
-			$transports = array();
+		static $transports = array();
 
-		$request_order = isset($r['blocking']) && !$r['blocking'] ?
-							array('curl', 'streams', 'fsockopen', 'exthttp') : // non-blocking order
-							array('exthttp', 'curl', 'streams', 'fsockopen'); // blocking order
+		// default transports order
+		$request_order = $args['blocking'] ?
+							array( 'exthttp', 'curl', 'streams', 'fsockopen' ): // blocking order
+							array( 'curl', 'streams', 'fsockopen', 'exthttp' ); // non-blocking order
 
+		$request_order = apply_filters( 'http_get_transports', $request_order, $url, $args );
+
 		// Loop over each transport on each HTTP request looking for one which will serve this requests needs
 		foreach ( $request_order as $transport ) {
 			$class = 'WP_HTTP_' . $transport;
