diff --git a/setup.py b/setup.py
index 6f21ddce8c82f6e1ea1027b5a411aa0cd302f01f..400d1b9fc1d135b4a4a75dda113cf0af25d7c5cc 100644
--- a/setup.py
+++ b/setup.py
@@ -41,7 +41,7 @@ setup(name="sumpy",
 
       install_requires=[
           "loo.py>=2017.2",
-          "pytools>=2017.5",
+          "pytools>=2017.6",
           "boxtree>=2013.1",
           "pytest>=2.3",
           "six",
diff --git a/sumpy/tools.py b/sumpy/tools.py
index 2fbb18838b70104d712a6c39110fac4902a66148..428fa2a1ba54afc1151b7874aa89bc81c2bdec35 100644
--- a/sumpy/tools.py
+++ b/sumpy/tools.py
@@ -393,12 +393,8 @@ class KernelCacheWrapper(object):
         with MinRecursionLimit(3000):
             knl = self.get_optimized_kernel(**kwargs)
 
-        from pytools.persistent_dict import ReadOnlyEntryError
         if CACHING_ENABLED:
-            try:
-                code_cache[cache_key] = knl
-            except ReadOnlyEntryError:
-                pass
+            code_cache.store_if_not_present(cache_key, knl)
 
         return knl