diff --git a/loopy/kernel/data.py b/loopy/kernel/data.py
index adffe418e9e533cde8b5d274b6a82ab509fa60a2..24851690583a33cd9a4ce8bbb7fbe59ced7f4b66 100644
--- a/loopy/kernel/data.py
+++ b/loopy/kernel/data.py
@@ -372,6 +372,16 @@ class TemporaryVariable(ArrayBase):
     def __str__(self):
         return self.stringify(include_typename=False)
 
+    def update_persistent_hash(self, key_hash, key_builder):
+        """Custom hash computation function for use with
+        :class:`pytools.persistent_dict.PersistentDict`.
+        """
+
+        super(TemporaryVariable, self).update_persistent_hash(key_hash, key_builder)
+        key_builder.rec(key_hash, self.storage_shape)
+        key_builder.rec(key_hash, self.base_indices)
+        key_builder.rec(key_hash, self.is_local)
+
 # }}}