diff --git a/jvm-streaming.cabal b/jvm-streaming.cabal
--- a/jvm-streaming.cabal
+++ b/jvm-streaming.cabal
@@ -1,5 +1,5 @@
 name:                jvm-streaming
-version:             0.3.2
+version:             0.4.0
 synopsis:            Expose Java iterators as streams from the streaming package.
 description:         Please see README.md.
 homepage:            http://github.com/tweag/inline-java/tree/master/jvm-streaming#readme
@@ -23,7 +23,7 @@
     base,
     Cabal >= 1.24,
     inline-java >= 0.6.3,
-    jvm-batching >= 0.1 && <0.2
+    jvm-batching >= 0.2 && <0.3
 
 library
   hs-source-dirs: src/main/haskell src/cabal/haskell
@@ -34,10 +34,10 @@
   build-depends:
     base >= 4.7 && < 5,
     distributed-closure >= 0.3,
-    jni >= 0.4.0 && <0.8,
-    jvm >= 0.4.0 && <0.6,
-    jvm-batching >= 0.1 && <0.2,
-    inline-java >= 0.9 && <0.10,
+    jni >= 0.8.0 && <0.9,
+    jvm >= 0.6.0 && <0.7,
+    jvm-batching >= 0.2 && <0.3,
+    inline-java >= 0.10 && <0.11,
     singletons >= 2.6,
     streaming >= 0.1.4,
     vector
@@ -54,11 +54,13 @@
     base,
     hspec,
     inline-java,
+    jni,
     jvm,
     jvm-streaming,
     streaming,
     text
   default-language: Haskell2010
+  ghc-options: -threaded
   cpp-options: -DHSPEC_DISCOVER=hspec-discover
 
 
diff --git a/src/main/haskell/Language/Java/Streaming.hs b/src/main/haskell/Language/Java/Streaming.hs
--- a/src/main/haskell/Language/Java/Streaming.hs
+++ b/src/main/haskell/Language/Java/Streaming.hs
@@ -239,7 +239,10 @@
               v' <- liftIO $
                 [java| $jiterator.next() |] `withLocalRef` \jbatch ->
                   JNI.getIntField jiterator fieldId
-                  >>= reifyBatch (unsafeCast (jbatch :: JObject) :: J (Batch a))
+                  >>= \sz -> reifyBatch
+                        (unsafeCast (jbatch :: JObject) :: J (Batch a))
+                        sz
+                        (const True)
               go 0 v'
             else
               liftIO $ do
diff --git a/src/test/haskell/Main.hs b/src/test/haskell/Main.hs
--- a/src/test/haskell/Main.hs
+++ b/src/test/haskell/Main.hs
@@ -1,16 +1,25 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE QuasiQuotes #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE TemplateHaskell #-}
 module Main where
 
+import Control.Concurrent (runInBoundThread)
 import Data.List (intersperse)
 import qualified Data.Text as Text
 import qualified Data.Text.Encoding as Text
-import Language.Java (withJVM)
+import Foreign.JNI
+import Language.Java.Inline (loadJavaWrappers)
 import Language.Java.Streaming.Jars (getJars)
 import qualified Spec
 import Test.Hspec
 
+
 main :: IO ()
 main = do
     jars <- getJars
     let classpath = concat $ intersperse ":" jars
-    withJVM [Text.encodeUtf8 $ Text.pack $ "-Djava.class.path=" ++ classpath] $
-      hspec Spec.spec
+    withJVM [Text.encodeUtf8 $ Text.pack $ "-Djava.class.path=" ++ classpath] $ do
+      loadJavaWrappers -- causes classes in jvm-batching.jar to be loaded
+                       -- since they are used in java quotations
+      hspec $ around_ (runInBoundThread . runInAttachedThread) Spec.spec
