diff --git a/oauthenticated.cabal b/oauthenticated.cabal
--- a/oauthenticated.cabal
+++ b/oauthenticated.cabal
@@ -1,5 +1,5 @@
 name:                oauthenticated
-version:             0.1.2
+version:             0.1.3.2
 synopsis:            Simple OAuth for http-client
 
 description:         
@@ -51,16 +51,16 @@
   other-modules:
     Network.OAuth.MuLens
     Network.OAuth.Util
-  build-depends:       base                >= 4.6      && <  4.7
-                     , aeson               >= 0.6.2    && < 0.8
+  build-depends:       base                >= 4.6      && < 4.8
+                     , aeson               >= 0.6.2    && < 0.9
                      , base64-bytestring   >= 1.0      && < 1.1
                      , blaze-builder       >= 0.3
                      , bytestring          >= 0.9
-                     , case-insensitive    >= 1.0      && < 1.2
+                     , case-insensitive    >= 1.0      && < 1.3
                      , crypto-random       >= 0.0.7
                      , cryptohash          >= 0.11     && < 0.12
                      , either              >= 4.0      && < 5.0
-                     , exceptions          >= 0.3      && < 0.4
+                     , exceptions          >= 0.4
                      , http-client         >= 0.2.0
                      , http-types          >= 0.8
                      , mtl                 >= 2.0
diff --git a/src/Network/OAuth/Signing.hs b/src/Network/OAuth/Signing.hs
--- a/src/Network/OAuth/Signing.hs
+++ b/src/Network/OAuth/Signing.hs
@@ -124,9 +124,13 @@
 
       combine :: [S.ByteString] -> S.ByteString
       combine = pctEncode . S8.intercalate "&"
+
+      reqIsFormUrlEncoded = case lookup H.hContentType (C.requestHeaders req) of
+                              Just "application/x-www-form-urlencoded" -> True
+                              _                                        -> False
   in combine . sort . map build . mconcat
      $ [ oauthParams oax server
-       , bodyParams req
+       , if reqIsFormUrlEncoded then bodyParams req else []
        , queryParams req
        ]
 
diff --git a/src/Network/OAuth/Simple.hs b/src/Network/OAuth/Simple.hs
--- a/src/Network/OAuth/Simple.hs
+++ b/src/Network/OAuth/Simple.hs
@@ -86,6 +86,7 @@
            , MonadReader (OaConfig ty)
            , MonadState R.SystemRNG
            , E.MonadCatch
+           , E.MonadThrow
            , MonadIO
            )
 instance MonadTrans (OAuthT ty) where lift = OAuthT . lift . lift
