diff --git a/satella/__init__.py b/satella/__init__.py
index 175cce4b1ad5d7013757f9ecc8330504622ee1cf..76dd40ce9f02341088b7a112d19b1db92b27506e 100644
--- a/satella/__init__.py
+++ b/satella/__init__.py
@@ -1 +1 @@
-__version__ = '2.20.4a2'
+__version__ = '2.20.4a3'
diff --git a/satella/db.py b/satella/db.py
index 9a983704a228f831bbde0bc6bb39678daa3086dd..1646dbdff4f21f921c061303d436528ef28a6ae9 100644
--- a/satella/db.py
+++ b/satella/db.py
@@ -38,7 +38,9 @@ class transaction:
     @property
     def connection(self):
         if inspect.isfunction(self._connection):
-            return self._connection()
+            conn = self._connection()
+            self._connection = conn
+            return conn
         else:
             return self._connection