diff --git a/util/src/main/java/org/killbill/billing/util/security/shiro/dao/JDBCSessionDao.java b/util/src/main/java/org/killbill/billing/util/security/shiro/dao/JDBCSessionDao.java
index <HASH>..<HASH> 100644
--- a/util/src/main/java/org/killbill/billing/util/security/shiro/dao/JDBCSessionDao.java
+++ b/util/src/main/java/org/killbill/billing/util/security/shiro/dao/JDBCSessionDao.java
@@ -62,6 +62,9 @@ public class JDBCSessionDao extends CachingSessionDAO {
                 final DateTime lastAccessTime = new DateTime(session.getLastAccessTime(), DateTimeZone.UTC);
                 final Long sessionId = Long.valueOf(session.getId().toString());
                 jdbcSessionSqlDao.updateLastAccessTime(lastAccessTime, sessionId);
+            } else if (session instanceof SimpleSession) {
+                // Hack to override the value in the cache so subsequent requests see the (stale) value on disk
+                ((SimpleSession) session).setLastAccessTime(previousSession.getLastAccessTime());
             }
         } else {
             // Various fields were changed, update the full row
util: make previous patch work with caching

Make the cached session reflect the stale last access time
value, so the comparison accessedRecently uses the old value,
not the one from the (cached) last request.

The implementation is not pretty but with the current code,
I haven't found a better way :/