diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.2.1
+
+* Allow QuickCheck <2.15 and tasty <1.5.
+
 ## 0.2.0
 
 * Added read options for backward reading and starting from a specific key.
diff --git a/src/Streamly/External/LMDB.hs b/src/Streamly/External/LMDB.hs
--- a/src/Streamly/External/LMDB.hs
+++ b/src/Streamly/External/LMDB.hs
@@ -293,7 +293,7 @@
             if iter < 3 then do
                 threadId' <- myThreadId
                 when (threadId' /= threadId) $
-                    (throw $ ExceptionString "Error: writeLMDB veered off the original bound thread")
+                    throw (ExceptionString "Error: writeLMDB veered off the original bound thread")
                 return $ iter + 1
             else
                 return iter
@@ -335,7 +335,7 @@
         return (threadId, iter', currChunkSz' + 1, Just (ptxn, ref)))
     (do
         isBound <- liftIO isCurrentThreadBound
-        threadId <- liftIO $ myThreadId
+        threadId <- liftIO myThreadId
         if isBound then
             return (threadId, 0 :: Int, 0, Nothing)
         else
@@ -344,7 +344,7 @@
     (\(threadId, _, _, mtxn) -> liftIO $ do
         threadId' <- myThreadId
         when (threadId' /= threadId) $
-            (throw $ ExceptionString "Error: writeLMDB veered off the original bound thread at the end")
+            throw (ExceptionString "Error: writeLMDB veered off the original bound thread at the end")
         case mtxn of
             Nothing -> return ()
             Just (_, ref) -> runIORefFinalizer ref)
diff --git a/streamly-lmdb.cabal b/streamly-lmdb.cabal
--- a/streamly-lmdb.cabal
+++ b/streamly-lmdb.cabal
@@ -1,13 +1,13 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.33.0.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 9ad1d377f90069c99f24bcc557c1ff43a9f075fdfead1071725615fe8f352f50
+-- hash: d4cb0bcf729fd32460df2fbb52948a7cf9d1cff0094ec59b086b8950847e5491
 
 name:           streamly-lmdb
-version:        0.2.0
+version:        0.2.1
 synopsis:       Stream data to or from LMDB databases using the streamly library.
 description:    Please see the README on GitHub at <https://github.com/shlok/streamly-lmdb#readme>
 category:       Database, Streaming, Streamly
@@ -15,7 +15,7 @@
 bug-reports:    https://github.com/shlok/streamly-lmdb/issues
 author:         Shlok Datye
 maintainer:     sd-haskell@quant.is
-copyright:      2020 Shlok Datye
+copyright:      2021 Shlok Datye
 license:        BSD3
 license-file:   LICENSE
 build-type:     Simple
@@ -64,14 +64,14 @@
   extra-libraries:
       lmdb
   build-depends:
-      QuickCheck >=2.13.2 && <2.14
+      QuickCheck >=2.13.2 && <2.15
     , async >=2.2.2 && <2.3
     , base >=4.7 && <5
     , bytestring >=0.10.10.0 && <0.11
     , directory >=1.3.6.0 && <1.4
     , streamly >=0.7.2 && <0.8
-    , streamly-lmdb ==0.2.0
-    , tasty >=1.2.3 && <1.3
+    , streamly-lmdb
+    , tasty >=1.2.3 && <1.5
     , tasty-quickcheck >=0.10.1.1 && <0.11
-    , temporary >=1.3 && <1.4
+    , temporary ==1.3.*
   default-language: Haskell2010
diff --git a/test/Streamly/External/LMDB/Tests.hs b/test/Streamly/External/LMDB/Tests.hs
--- a/test/Streamly/External/LMDB/Tests.hs
+++ b/test/Streamly/External/LMDB/Tests.hs
@@ -151,8 +151,8 @@
 arbitraryKeyValuePairs' = do
     arb <- arbitraryKeyValuePairs
     b <- pick arbitrary
-    if length arb > 0 && b then do
-        let (k, v) = arb !! 0
+    if not (null arb) && b then do
+        let (k, v) = head arb
         b' <- pick arbitrary
         v' <- if b' then return v else pack <$> pick arbitrary
         i <- pick $ choose (negate $ length arb, 2 * length arb)
