diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+### 0.5.1.1
+
+* Allow http-conduit 2.2.*
+
 ### 0.5.1.0
 
 * Add `Functor (ApiResponse e)` instance
diff --git a/rest-client.cabal b/rest-client.cabal
--- a/rest-client.cabal
+++ b/rest-client.cabal
@@ -1,5 +1,5 @@
 name:                rest-client
-version:             0.5.1.0
+version:             0.5.1.1
 description:         Utility library for use in generated API client libraries.
 synopsis:            Utility library for use in generated API client libraries.
 maintainer:          code@silk.co
@@ -28,9 +28,10 @@
     , aeson-utils >= 0.2.1 && < 0.4
     , bytestring >= 0.9 && < 0.11
     , case-insensitive >= 0.4 && < 1.3
-    , data-default == 0.5.*
+    , data-default >= 0.5 && < 0.8
     , exceptions == 0.8.*
-    , http-conduit == 2.1.*
+    , http-client >= 0.3 && < 0.6
+    , http-conduit >= 2.1 && < 2.3
     , http-types >= 0.7 && < 0.10
     , hxt >= 9.2 && < 9.4
     , hxt-pickle-utils == 0.1.*
@@ -39,8 +40,8 @@
     , resourcet >= 1.1.4 && < 1.2
     , rest-types >= 1.13 && < 1.15
     , tostring == 0.2.*
-    , transformers >= 0.3 && < 0.5
+    , transformers >= 0.3 && < 0.6
     , transformers-base >= 0.4.4 && < 0.5
-    , transformers-compat >= 0.3 && < 0.5
+    , transformers-compat >= 0.3 && < 0.6
     , uri-encode == 1.5.*
     , utf8-string >= 0.3 && < 1.1
diff --git a/src/Rest/Client/Internal.hs b/src/Rest/Client/Internal.hs
--- a/src/Rest/Client/Internal.hs
+++ b/src/Rest/Client/Internal.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE
-    FlexibleInstances
+    CPP
+  , FlexibleInstances
   , OverlappingInstances
   , OverloadedStrings
   , UndecidableInstances
@@ -34,7 +35,9 @@
 import Control.Monad
 import Control.Monad.Cont
 import Data.Aeson.Utils (FromJSON, ToJSON, eitherDecodeV, encode)
+#if !MIN_VERSION_http_client(0,5,0)
 import Data.Default (def)
+#endif
 import Data.List
 import Data.Monoid
 import Data.String
@@ -68,16 +71,21 @@
   ApiResponse
    { statusCode      = HTTP.statusCode (responseStatus r)
    , statusMessage   = HTTP.statusMessage (responseStatus r)
-   , httpVersion     = (\v -> (httpMajor v, httpMinor v)) (responseVersion r)
+   , httpVersion     = (httpMajor &&& httpMinor) (responseVersion r)
    , responseHeaders = HTTP.responseHeaders r
    , responseBody    = HTTP.responseBody r
    }
 
+#if MIN_VERSION_http_client(0,5,0)
+defaultTimeout :: ResponseTimeout
+defaultTimeout = responseTimeoutMicro (1000 * 1000 * 60 * 5)
+#else
 defaultTimeout :: Maybe Int
 defaultTimeout = Just (1000 * 1000 * 60 * 5)
+#endif
 
 splitHost :: String -> (String, String)
-splitHost hst = break (== '/') hst
+splitHost = break (== '/')
 
 doRequest :: ApiStateC m => (L.ByteString -> Rest.Types.Error.Reason e) -> (L.ByteString -> a) -> ApiRequest -> m (ApiResponse e a)
 doRequest a b = liftM (parseResult a b) . doReq
@@ -90,7 +98,11 @@
      hds <- fmap headers askApiInfo
      jar <- fmap cookies getApiState
      let (h, p) = splitHost hst
+#if MIN_VERSION_http_client(0,5,0)
+         req = defaultRequest
+#else
          req = def
+#endif
                 { HTTP.method = CH.pack m
                 , host = CH.pack h
                 , port = prt
@@ -98,7 +110,9 @@
                 , queryString = (renderQuery False . simpleQueryToQuery . Prelude.map (CH.pack *** CH.pack)) ps
                 , HTTP.requestHeaders = rhds ++ Prelude.map (fromString *** CH.pack) hds
                 , HTTP.requestBody = RequestBodyLBS bd
-                , checkStatus = (\_ _ _ -> Nothing)
+#if !MIN_VERSION_http_client(0,5,0)
+                , checkStatus = \_ _ _ -> Nothing
+#endif
                 , redirectCount = 0
                 , responseTimeout = defaultTimeout
                 , cookieJar = Just jar
@@ -143,5 +157,5 @@
 
 
 makeReq :: String -> String -> [[String]] -> [(String, String)] -> Network.HTTP.Types.Header.RequestHeaders -> L.ByteString -> ApiRequest
-makeReq meth v ls pList hs body = ApiRequest meth (intercalate "/" (v : map URI.encode (concat ls))) pList hs body
+makeReq meth v ls = ApiRequest meth (intercalate "/" (v : map URI.encode (concat ls)))
 
