diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index ad165e8e903450e3e87fd5e4c794adfa8363ac8e..972f1589e42760f52a3df6da3ac48237f327c7c9 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -1053,7 +1053,6 @@ class WebClient(http.Controller):
         :param lang: the language of the user
         :return:
         """
-        request.disable_db = False
 
         if mods:
             mods = mods.split(',')
@@ -1229,7 +1228,6 @@ class Session(http.Controller):
     def get_session_info(self):
         request.session.check_security()
         request.uid = request.session.uid
-        request.disable_db = False
         return request.env['ir.http'].session_info()
 
     @http.route('/web/session/authenticate', type='json', auth="none")
diff --git a/odoo/http.py b/odoo/http.py
index 27614315bc104c633c92807015175b0175de925d..47a673e8f157cc5340889a5e8416edfafa4cfca7 100644
--- a/odoo/http.py
+++ b/odoo/http.py
@@ -198,10 +198,10 @@ class WebRequest(object):
     def __init__(self, httprequest):
         self.httprequest = httprequest
         self.httpresponse = None
-        self.disable_db = False
         self.endpoint = None
         self.endpoint_arguments = None
         self.auth_method = None
+        self._db = self.session.db
         self._cr = None
         self._uid = None
         self._context = None
@@ -285,7 +285,7 @@ class WebRequest(object):
             finally:
                 self._cr.close()
         # just to be sure no one tries to re-use the request
-        self.disable_db = True
+        self._db = None
         self.uid = None
 
     def set_handler(self, endpoint, arguments, auth):
@@ -393,7 +393,9 @@ class WebRequest(object):
         The database linked to this request. Can be ``None``
         if the current request uses the ``none`` authentication.
         """
-        return self.session.db if not self.disable_db else None
+        if not self._db:
+            self._db = self.session.db
+        return self._db
 
     def csrf_token(self, time_limit=None):
         """ Generates and returns a CSRF token for the current session
@@ -1033,7 +1035,6 @@ class OpenERPSession(sessions.Session):
         self.rotate = True
         self.db = db
         self.login = login
-        request.disable_db = False
 
         user = request.env(user=uid)['res.users'].browse(uid)
         if not user._mfa_url():