--- a/branches/ZMySQLDA-2/ZMySQLDA/db.py
+++ b/branches/ZMySQLDA-2/ZMySQLDA/db.py
@@ -83,8 +83,8 @@
 # 
 ##############################################################################
 
-'''$Id: db.py 564 2009-01-06 00:20:20Z eikenberry $'''
-__version__='$Revision: 564 $'[11:-2]
+'''$Id: db.py 565 2009-01-07 01:45:51Z eikenberry $'''
+__version__='$Revision: 565 $'[11:-2]
 
 import time
 import _mysql
@@ -635,15 +635,24 @@
         else:
             LOG.error("aborting when non-transactional")
 
+    def _mysql_version(self):
+        """ Return mysql server version.
+            Note instances of this class are not persistent.
+        """
+        _version = getattr(self, '_version', None)
+        if not _version:
+            self._version = _version = self.variables().get('version')
+        return _version
+
     def savepoint(self):
         """ Basic savepoint support.
 
             Raise AttributeErrors to trigger optimistic savepoint handling
             in zope's transaction code.
         """
-        if self.variables().get('version') < '5.0.2':
+        if self._mysql_version() < '5.0.2':
             # mysql supports savepoints in versions 5.0.3+
-            LOG.error("Savepoints unsupported with Mysql < 5.0.3")
+            LOG.warning("Savepoints unsupported with Mysql < 5.0.3")
             raise AttributeError
 
         if not self._transaction_begun: