diff --git a/odoo/sql_db.py b/odoo/sql_db.py
index 966719514bcc1a3eecfb744e267a24e9b22a3bd7..590816a1f7374e2be8e07bcf0563d65721478e0e 100644
--- a/odoo/sql_db.py
+++ b/odoo/sql_db.py
@@ -688,14 +688,11 @@ class ConnectionPool(object):
         ignore_keys = ['password']
         dsn1, dsn2 = ({
             alias_keys.get(key, key): str(value)
-            for key, value in (isinstance(dsn, str) and self._dsn_to_dict(dsn) or dsn).items()
+            for key, value in (psycopg2.extensions.parse_dsn(dsn) if isinstance(dsn, str) else dsn).items()
             if key not in ignore_keys
         } for dsn in (dsn1, dsn2))
         return dsn1 == dsn2
 
-    def _dsn_to_dict(self, dsn):
-        return dict(value.split('=', 1) for value in dsn.strip().split())
-
 
 class Connection(object):
     """ A lightweight instance of a connection to postgres