diff --git a/NEWS.rst b/NEWS.rst
index 938b441e8c28c55effc28e95a0bb724cbd30e050_TkVXUy5yc3Q=..3f6dafff95f02dc6b3661e98db79b028d6bb6198_TkVXUy5yc3Q= 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -2,6 +2,13 @@
 NEWS
 ====
 
+13.0.3.1.0
+==========
+
+(forward port of 11.0.2.5.0)
+
+* Configurable timeout for redner calls, default is 20 seconds.
+
 13.0.3.0.2
 ==========
 
diff --git a/README.rst b/README.rst
index 938b441e8c28c55effc28e95a0bb724cbd30e050_UkVBRE1FLnJzdA==..3f6dafff95f02dc6b3661e98db79b028d6bb6198_UkVBRE1FLnJzdA== 100644
--- a/README.rst
+++ b/README.rst
@@ -19,4 +19,5 @@
     redner.server_url = http://dockerhost:7000
     redner.api_key = <your API key here>
     redner.account = <your account name>
+    redner.timeout = 20
 
@@ -22,4 +23,5 @@
 
+``redner.timeout`` is in seconds; defaults to 20 seconds per redner call.
 
 **Pro tip**: You can use mjml-app_ to prototype your email templates.
 
diff --git a/__manifest__.py b/__manifest__.py
index 938b441e8c28c55effc28e95a0bb724cbd30e050_X19tYW5pZmVzdF9fLnB5..3f6dafff95f02dc6b3661e98db79b028d6bb6198_X19tYW5pZmVzdF9fLnB5 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -21,7 +21,7 @@
     "name": "Redner",
     "summary": """
 Allows to generate transactional emails and documents in PDF or HTML format""",
-    "version": "13.0.3.0.2",
+    "version": "13.0.3.1.0",
     "category": "Technical",
     "author": "XCG Consulting",
     "website": "http://odoo.consulting/",
diff --git a/models/redner_template.py b/models/redner_template.py
index 938b441e8c28c55effc28e95a0bb724cbd30e050_bW9kZWxzL3JlZG5lcl90ZW1wbGF0ZS5weQ==..3f6dafff95f02dc6b3661e98db79b028d6bb6198_bW9kZWxzL3JlZG5lcl90ZW1wbGF0ZS5weQ== 100644
--- a/models/redner_template.py
+++ b/models/redner_template.py
@@ -89,6 +89,7 @@
                 config_model.get_param("redner.api_key"),
                 config_model.get_param("redner.server_url"),
                 config_model.get_param("redner.account"),
+                int(config_model.get_param("redner.timeout", default="20")),
             )
 
         return self._redner
diff --git a/redner.py b/redner.py
index 938b441e8c28c55effc28e95a0bb724cbd30e050_cmVkbmVyLnB5..3f6dafff95f02dc6b3661e98db79b028d6bb6198_cmVkbmVyLnB5 100644
--- a/redner.py
+++ b/redner.py
@@ -15,9 +15,9 @@
 
 
 class Redner(object):
-    def __init__(self, api_key, server_url, account):
+    def __init__(self, api_key, server_url, account, timeout):
         """Initialize the API client
 
         Args:
            api_key(str): provide your Redner API key.
            server_url(str): Redner server URL.
@@ -19,7 +19,8 @@
         """Initialize the API client
 
         Args:
            api_key(str): provide your Redner API key.
            server_url(str): Redner server URL.
+           timeout(float): Timeout per Redner call, in seconds.
         """
 
@@ -24,4 +25,5 @@
         """
 
-        self.session = requests.session()
+        self.api_key = api_key
+        self.server_url = server_url
         self.account = account
@@ -27,6 +29,7 @@
         self.account = account
-        self.server_url = server_url
-        self.api_key = api_key
+        self.timeout = timeout
+
+        self.session = requests.sessions.Session()
         self.templates = Templates(self)
 
     def call(self, path, http_verb="post", **params):
@@ -70,7 +73,10 @@
         start = time.time()
 
         r = getattr(self.session, http_verb, "post")(
-            url, json=params, headers={"Rednerd-API-Key": self.api_key}
+            url,
+            json=params,
+            headers={"Rednerd-API-Key": self.api_key},
+            timeout=self.timeout,
         )
 
         complete_time = time.time() - start
@@ -96,7 +102,7 @@
 
     def ping(self):
         """Try to establish a connection to server"""
-        conn = self.session.get(self.server_url)
+        conn = self.session.get(self.server_url, timeout=self.timeout)
         if conn.status_code != requests.codes.ok:
             raise ValidationError("Cannot Establish a connection to server")
         return conn