diff --git a/wp-includes/functions.php b/wp-includes/functions.php
index 30fac47..6835ddf 100644
--- a/wp-includes/functions.php
+++ b/wp-includes/functions.php
@@ -580,8 +580,7 @@ function do_enclose( $content, $post_ID ) {
 function wp_get_http( $url, $file_path = false, $red = 1 ) {
 	@set_time_limit( 60 );
 
-	if ( $red > 5 )
-		return false;
+	_deprecated_function( 'wp_get_http', '4.4', 'wp_safe_remote_request' );
 
 	$options = array();
 	$options['redirection'] = 5;
@@ -591,6 +590,12 @@ function wp_get_http( $url, $file_path = false, $red = 1 ) {
 	else
 		$options['method'] = 'GET';
 
+	// Stream directly to a file
+	if ( ! empty( $file_path ) ) {
+		$options['stream'] = true;
+		$options['filename'] = $file_path;
+	}
+
 	$response = wp_safe_remote_request( $url, $options );
 
 	if ( is_wp_error( $response ) )
@@ -598,24 +603,6 @@ function wp_get_http( $url, $file_path = false, $red = 1 ) {
 
 	$headers = wp_remote_retrieve_headers( $response );
 	$headers['response'] = wp_remote_retrieve_response_code( $response );
-
-	// WP_HTTP no longer follows redirects for HEAD requests.
-	if ( 'HEAD' == $options['method'] && in_array($headers['response'], array(301, 302)) && isset( $headers['location'] ) ) {
-		return wp_get_http( $headers['location'], $file_path, ++$red );
-	}
-
-	if ( false == $file_path )
-		return $headers;
-
-	// GET request - write it to the supplied filename
-	$out_fp = fopen($file_path, 'w');
-	if ( !$out_fp )
-		return $headers;
-
-	fwrite( $out_fp,  wp_remote_retrieve_body( $response ) );
-	fclose($out_fp);
-	clearstatcache();
-
 	return $headers;
 }
 
