diff --git a/mo/rights.py b/mo/rights.py
index 40a72a75b539e5a81afc0fca81c804ef38c89aa7..a76b9687fd5e505b1c296b89266decf176f37b97 100644
--- a/mo/rights.py
+++ b/mo/rights.py
@@ -230,6 +230,7 @@ class Gatekeeper:
                 for role in self.roles:
                     try_role(role, at)
 
+        self.rights_cache[cache_key] = rights
         return rights
 
     def rights_generic(self):