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: 94a788ac41a95009b99d7e4662d0189ae04d0c2d2dabe31b2810aae27363d291
+-- hash: c91ec3f40f326feff8440f979eb63614fcbf81492936beffdd3f70d4d7ed52a4
 
 name:           haskoin-store
-version:        0.34.4
+version:        0.34.5
 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
@@ -53,7 +53,7 @@
     , hashable >=1.3.0.0
     , haskoin-core >=0.13.6
     , haskoin-node >=0.14.1
-    , haskoin-store-data ==0.34.4
+    , haskoin-store-data ==0.34.5
     , hedis >=0.12.13
     , http-types >=0.12.3
     , monad-logger >=0.3.32
@@ -96,7 +96,7 @@
     , haskoin-core >=0.13.6
     , haskoin-node >=0.14.1
     , haskoin-store
-    , haskoin-store-data ==0.34.4
+    , haskoin-store-data ==0.34.5
     , monad-logger >=0.3.32
     , mtl >=2.2.2
     , nqe >=0.6.1
@@ -135,8 +135,8 @@
     , hashable >=1.3.0.0
     , haskoin-core >=0.13.6
     , haskoin-node >=0.14.1
-    , haskoin-store ==0.34.4
-    , haskoin-store-data ==0.34.4
+    , haskoin-store ==0.34.5
+    , haskoin-store-data ==0.34.5
     , hedis >=0.12.13
     , hspec >=2.7.1
     , http-types >=0.12.3
diff --git a/src/Haskoin/Store/Logic.hs b/src/Haskoin/Store/Logic.hs
--- a/src/Haskoin/Store/Logic.hs
+++ b/src/Haskoin/Store/Logic.hs
@@ -54,7 +54,7 @@
                                                 TxRef (..), UnixTime,
                                                 Unspent (..), confirmed)
 import           Haskoin.Store.Database.Writer (MemoryTx, WriterT, runTx)
-import           UnliftIO                      (Exception, MonadIO, async,
+import           UnliftIO                      (Exception, MonadIO, asyncBound,
                                                 liftIO, wait)
 
 type MonadImport m =
@@ -119,8 +119,8 @@
     getActiveTxData (txHash tx) >>= \case
         Just _ -> return False
         Nothing -> do
-            freeOutputs True True [tx]
             preLoadMemory False [tx]
+            freeOutputs True True [tx]
             rbf <- isRBF (MemRef w) tx
             checkNewTx tx
             runMonadMemory $ importTx (MemRef w) w rbf tx
@@ -135,8 +135,8 @@
   where
     go
       | as = do
-            as1 <- mapM (async . loadPrevOut) (concatMap prevOuts txs)
-            as2 <- mapM (async . loadOutputBalances) txs
+            as1 <- mapM (asyncBound . loadPrevOut) (concatMap prevOuts txs)
+            as2 <- mapM (asyncBound . loadOutputBalances) txs
             runTx . setMempool =<< getMempool
             mapM_ wait $ as1 ++ as2
       | otherwise = do
@@ -194,8 +194,8 @@
 
 importOrConfirm :: MonadImport m => BlockNode -> [Tx] -> WriterT m ()
 importOrConfirm bn txs = do
-    freeOutputs True False txs
     preLoadMemory True txs
+    freeOutputs True False txs
     mapM_ (uncurry action) (sortTxs txs)
   where
     br i = BlockRef {blockRefHeight = nodeHeight bn, blockRefPos = i}
@@ -435,7 +435,6 @@
     forM_ txs $ \tx ->
     forM_ (prevOuts tx) $ \op ->
     unless (outPointHash op `S.member` ths) $
-    loadPrevOut op >>
     getUnspent op >>= \case
         Just _ -> return ()
         Nothing -> getSpender op >>= \case
