diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.1.2
+
+`hw-dsv-0.4.0` compatibility
+
 # 0.1
 
 First release of an `hw-dsv`-based CSV parser for use with the `Frames` package.
diff --git a/Frames-dsv.cabal b/Frames-dsv.cabal
--- a/Frames-dsv.cabal
+++ b/Frames-dsv.cabal
@@ -1,5 +1,5 @@
 name:                Frames-dsv
-version:             0.1.1
+version:             0.1.2
 synopsis:            Alternative CSV parser for the Frames package
 description: Alternative CSV parser for the Frames package. In cases
              where the built-in Frames CSV parser does not work
@@ -27,7 +27,7 @@
                      , bytestring
                      , Frames >= 0.6
                      , vinyl
-                     , hw-dsv >= 0.3 && < 0.4
+                     , hw-dsv >= 0.3 && < 0.5
                      , pipes >= 4.1 && < 5
                      , text
                      , vector
diff --git a/src/Frames/Dsv.hs b/src/Frames/Dsv.hs
--- a/src/Frames/Dsv.hs
+++ b/src/Frames/Dsv.hs
@@ -25,6 +25,7 @@
 import Frames.TH (rowGen, RowGen(..), tableTypes')
 
 import qualified HaskellWorks.Data.Dsv.Lazy.Cursor as SVL
+import qualified HaskellWorks.Data.Dsv.Lazy.Cursor.Strict as SVLS
 
 import Pipes (MonadIO, Producer, (>->), yield)
 import qualified Pipes as P
@@ -38,7 +39,7 @@
 rowLoop :: Monad m => SVL.DsvCursor -> Producer [BS.ByteString] m ()
 rowLoop c =
   if SVL.dsvCursorPosition d > SVL.dsvCursorPosition c && not (SVL.atEnd c)
-  then do yield (V.toList (SVL.getRowBetweenStrict c d dEnd))
+  then do yield (SVLS.getRowListBetween c d dEnd)
           rowLoop (SVL.trim d)
   else return ()
   where nr = SVL.nextRow c
