diff --git a/opentrafficshaper/POE/Filter/HybridHTTP.pm b/opentrafficshaper/POE/Filter/HybridHTTP.pm
index 4b79c507e6904513622dcad709a3e9e64be235a2..79a3498bc9bf1829d448345f8a229de28d4d4580 100644
--- a/opentrafficshaper/POE/Filter/HybridHTTP.pm
+++ b/opentrafficshaper/POE/Filter/HybridHTTP.pm
@@ -460,10 +460,11 @@ sub _build_raw_response
 	if (!defined($response->header("Server"))) {
 		$response->push_header("Server","POE Hybrid HTTP Server v$VERSION");
 	}
-	# Set our content Length
-	if (my $length = length($response->content)) {
-	    $response->push_header("Content-Length",$length);
-	}
+
+	# Set our content length
+	# - This is required even if the content length is 0, for instance when we doing a REDIRECT with no content some browsers hang if
+	# - there is no content length set.
+	$response->push_header("Content-Length",length($response->content));
 
 	# Setup our output
 	my $output = sprintf("%s %s",$self->{'protocol'},$response->status_line);