diff --git a/google-translate.cabal b/google-translate.cabal
--- a/google-translate.cabal
+++ b/google-translate.cabal
@@ -1,5 +1,5 @@
 name:                google-translate
-version:             0.2
+version:             0.3
 synopsis:            Google Translate API bindings
 license:             BSD3
 license-file:        LICENSE
@@ -16,15 +16,16 @@
 
 library
   exposed-modules:     Web.Google.Translate
+  ghc-options: -Wall
   hs-source-dirs:      src
   build-depends:       aeson
                      , base           >= 4.7 && < 5
                      , bytestring     == 0.10.*
                      , transformers   >= 0.4 && < 0.6
-                     , http-api-data  == 0.2.*
-                     , http-client    == 0.4.*
-                     , servant        == 0.7.*
-                     , servant-client == 0.7.*
+                     , http-api-data  >= 0.2 && < 0.4
+                     , http-client    >= 0.4 && < 0.6
+                     , servant        >= 0.7 && < 0.10
+                     , servant-client >= 0.7 && < 0.10
                      , text           == 1.2.*
   default-language:    Haskell2010
 
diff --git a/src/Web/Google/Translate.hs b/src/Web/Google/Translate.hs
--- a/src/Web/Google/Translate.hs
+++ b/src/Web/Google/Translate.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP                        #-}
 {-# LANGUAGE PolyKinds                  #-}
 {-# LANGUAGE GADTs                      #-}
 {-# LANGUAGE OverloadedStrings          #-}
@@ -168,33 +169,50 @@
   -> Maybe Source
   -> Maybe Target
   -> Maybe Body
+#if !(MIN_VERSION_servant_client(0,9,0))
   -> Manager
   -> BaseUrl
-  -> ExceptT ServantError IO TranslationResponse
+#endif
+  -> ClientM TranslationResponse
 detect'
   :: Maybe Key
   -> Maybe Body
+#if !(MIN_VERSION_servant_client(0,9,0))
   -> Manager
   -> BaseUrl
-  -> ExceptT ServantError IO DetectionResponse
+#endif
+  -> ClientM DetectionResponse
 getLanguages'
   :: Maybe Key
   -> Maybe Target
+#if !(MIN_VERSION_servant_client(0,9,0))
   -> Manager
   -> BaseUrl
-  -> ExceptT ServantError IO LanguageResponse
+#endif
+  -> ClientM LanguageResponse
 translate' :<|> detect' :<|> getLanguages' = client api
 ------------------------------------------------------------------------------
 googleApis :: BaseUrl
 googleApis = BaseUrl Https "www.googleapis.com" 443 "/"
 ------------------------------------------------------------------------------
+-- compatability for servant-client 0.7 and 0.8:
+#if !(MIN_VERSION_servant_client(0,9,0))
+data ClientEnv = ClientEnv Manager BaseUrl
+runClientM
+  :: (Manager -> BaseUrl -> ExceptT e m a)
+  -> ClientEnv -> m (Either e a)
+runClientM a (ClientEnv mgr baseurl) = runExceptT (a mgr baseurl)
+#endif
+------------------------------------------------------------------------------
 -- | Detect target language
 detect
   :: Manager
   -> Key
   -> Body
   -> IO (Either ServantError DetectionResponse)
-detect mgr key body = runExceptT $ detect' (Just key) (Just body) mgr googleApis
+detect mgr key body =
+  runClientM (detect' (Just key) (Just body))
+             (ClientEnv mgr googleApis)
 ------------------------------------------------------------------------------
 -- | Perform translation from `Source` language to `Target` langauge.
 -- If `Source` not specified, attempt detection of `Lang`
@@ -206,7 +224,8 @@
   -> Body
   -> IO (Either ServantError TranslationResponse)
 translate mgr key src trgt body =
-  runExceptT $ translate' (Just key) src (Just trgt) (Just body) mgr googleApis
+  runClientM (translate' (Just key) src (Just trgt) (Just body))
+             (ClientEnv mgr googleApis)
 ------------------------------------------------------------------------------
 -- | Retrieve all languages
 -- If `Target` specified, return langauge name in `Target` langauge.
@@ -216,7 +235,8 @@
   -> Maybe Target
   -> IO (Either ServantError LanguageResponse)
 getLanguages mgr key trgt =
-  runExceptT $ getLanguages' (Just key) trgt mgr googleApis
+  runClientM (getLanguages' (Just key) trgt)
+             (ClientEnv mgr googleApis)
 ------------------------------------------------------------------------------
 instance Show Lang where
   show Afrikaans          = "af"
