diff --git a/pytools/persistent_dict.py b/pytools/persistent_dict.py
index 7836b44efb644a625e00a3cce0cf46517df95857..f4d3bf20b0997b786c8326d9f1c7a242279a42f8 100644
--- a/pytools/persistent_dict.py
+++ b/pytools/persistent_dict.py
@@ -292,8 +292,13 @@ class KeyBuilder:
             self.rec(key_hash, obj_i)
 
     def update_for_frozenset(self, key_hash, key):
-        for set_key in sorted(key):
-            self.rec(key_hash, set_key)
+        from pytools import unordered_hash
+
+        self.rec(key_hash,
+                unordered_hash(
+                    self.new_hash,
+                    (self.rec(self.new_hash(), key_i).digest() for key_i in key)
+                    ).digest())
 
     @staticmethod
     def update_for_NoneType(key_hash, key):  # noqa