Index: wp-includes/class-http.php
===================================================================
--- wp-includes/class-http.php	(revision 23768)
+++ wp-includes/class-http.php	(working copy)
@@ -800,6 +800,9 @@
 		// If location is found, then assume redirect and redirect to location.
 		if ( isset($arrHeaders['headers']['location']) && 0 !== $r['_redirection'] ) {
 			if ( $r['redirection']-- > 0 ) {
+				if ( in_array( $arrHeaders['response']['code'], array( 302, 303 ) ) && 'POST' == $r['method'] )
+					$r['method'] = 'GET';
+
 				return wp_remote_request( WP_HTTP::make_absolute_url( $arrHeaders['headers']['location'], $url ), $r);
 			} else {
 				return new WP_Error('http_request_failed', __('Too many redirects.'));
