diff --git a/library/ListT/Libcurl.hs b/library/ListT/Libcurl.hs
--- a/library/ListT/Libcurl.hs
+++ b/library/ListT/Libcurl.hs
@@ -36,7 +36,6 @@
   where
     acquire = do
       h <- C.curl_easy_init
-      C.curl_easy_setopt h [C.CURLOPT_FAILONERROR True]
       return h
     release h = do
       C.curl_easy_cleanup h
@@ -67,7 +66,8 @@
     C.curl_easy_setopt h
       [
         C.CURLOPT_WRITEFUNCTION $ Just (syncWriteFunction syncState),
-        C.CURLOPT_URL url
+        C.CURLOPT_URL url,
+        C.CURLOPT_FOLLOWLOCATION True
       ]
     result <- newEmptyMVar :: IO (MVar (Either SomeException a))
     forkIO $ do
diff --git a/list-t-libcurl.cabal b/list-t-libcurl.cabal
--- a/list-t-libcurl.cabal
+++ b/list-t-libcurl.cabal
@@ -1,7 +1,7 @@
 name:
   list-t-libcurl
 version:
-  0.2.0.2
+  0.3.0.0
 synopsis:
   A "libcurl"-based streaming HTTP client
 category:
@@ -48,7 +48,7 @@
   build-depends:
     resource-pool == 0.2.*,
     stm == 2.*,
-    curlhs == 0.1.*,
+    curlhs >= 0.1.6 && < 0.2,
 
     bytestring >= 0.10 && < 0.11,
 
