diff --git a/src/ServerRequest.php b/src/ServerRequest.php
index 486dbc82c24ca88b8a396ff897e84475a9ee7c83..5d1ccc318970452e8824fa6ff08857397d914eef 100644
--- a/src/ServerRequest.php
+++ b/src/ServerRequest.php
@@ -2,6 +2,7 @@
 
 namespace Tal;
 
+use GuzzleHttp\Psr7\CachingStream;
 use GuzzleHttp\Psr7\LazyOpenStream;
 use GuzzleHttp\Psr7\UploadedFile;
 use GuzzleHttp\Psr7\Uri;
@@ -171,7 +172,7 @@ class ServerRequest extends Request implements ServerRequestInterface
         $method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET';
         $headers = function_exists('getallheaders') ? getallheaders() : [];
         $uri = self::getUriFromGlobals();
-        $body = new LazyOpenStream('php://input', 'r+');
+        $body = new CachingStream(new LazyOpenStream('php://input', 'r+'));
         $protocol = isset($_SERVER['SERVER_PROTOCOL']) ? str_replace('HTTP/', '', $_SERVER['SERVER_PROTOCOL']) : '1.1';
 
         $serverRequest = new static($method, $uri, $headers, $body, $protocol, $_SERVER);