diff --git a/haskoin-store.cabal b/haskoin-store.cabal
--- a/haskoin-store.cabal
+++ b/haskoin-store.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: b10fa47ab2013300357e9e4aacde948306c4a536982708da3c2cb7b552c21207
+-- hash: d6246773beb52d8d80453cb5f9a385ab8c5e094dacb9ac88d973767386447802
 
 name:           haskoin-store
-version:        0.41.0
+version:        0.41.1
 synopsis:       Storage and index for Bitcoin and Bitcoin Cash
 description:    Please see the README on GitHub at <https://github.com/haskoin/haskoin-store#readme>
 category:       Bitcoin, Finance, Network
diff --git a/src/Haskoin/Store/Cache.hs b/src/Haskoin/Store/Cache.hs
--- a/src/Haskoin/Store/Cache.hs
+++ b/src/Haskoin/Store/Cache.hs
@@ -639,15 +639,18 @@
 cacheWriterReact ::
        (MonadUnliftIO m, MonadLoggerIO m, StoreReadExtra m)
     => CacheWriterMessage -> CacheX m ()
-cacheWriterReact CacheNewBlock       = doSync
-cacheWriterReact (CachePing respond) = doSync >> atomically (respond ())
+cacheWriterReact CacheNewBlock =
+    doSync True
+cacheWriterReact (CachePing respond) =
+    doSync False >> atomically (respond ())
 
 doSync :: (MonadUnliftIO m, MonadLoggerIO m, StoreReadExtra m)
-       => CacheX m ()
-doSync = inSync >>= \s -> when s $ do
-    newBlockC
-    syncMempoolC
-    void pruneDB
+       => Bool -> CacheX m ()
+doSync prune =
+    inSync >>= \s -> when s $ do
+        newBlockC
+        syncMempoolC prune
+        void pruneDB
 
 lenNotNull :: [XPubBal] -> Int
 lenNotNull bals = length $ filter (not . nullBalance . xPubBal) bals
@@ -1049,15 +1052,15 @@
         in void . runRedis $ Redis.setOpts key "0" opts
 
 syncMempoolC :: (MonadUnliftIO m, MonadLoggerIO m, StoreReadExtra m)
-             => CacheX m ()
-syncMempoolC =
+             => Bool -> CacheX m ()
+syncMempoolC prune =
     toInteger <$> asks cacheRefresh >>= \refresh ->
     void . withLock . withCool "cool" (refresh * 9 `div` 10) $
     withMetrics cacheMempoolSyncTime $ do
     nodepool <- HashSet.fromList . map snd <$> lift getMempool
     cachepool <- HashSet.fromList . map snd <$> cacheGetMempool
     getem (HashSet.difference nodepool cachepool)
-    getem (HashSet.difference cachepool nodepool)
+    when prune $ getem (HashSet.difference cachepool nodepool)
     incrementCounter cacheRefreshes
   where
     getem tset = do
