diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,17 @@
   [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-http-streams/CHANGELOG.md)
 [Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
 
+0.18.1
+------
+
+### Significant changes
+
+- Union verbs
+
+### Other changes
+
+- Bump "tested-with" ghc versions
+
 0.18
 ----
 
diff --git a/servant-http-streams.cabal b/servant-http-streams.cabal
--- a/servant-http-streams.cabal
+++ b/servant-http-streams.cabal
@@ -1,6 +1,6 @@
 cabal-version:       >=1.10
 name:                servant-http-streams
-version:             0.18
+version:             0.18.1
 
 synopsis:            Automatic derivation of querying functions for servant
 category:            Servant, Web
@@ -20,13 +20,7 @@
 maintainer:          haskell-servant-maintainers@googlegroups.com
 copyright:           2019 Servant Contributors
 build-type:          Simple
-tested-with:
-  GHC ==8.0.2
-   || ==8.2.2
-   || ==8.4.4
-   || ==8.6.5
-   || ==8.8.3
-   || ==8.10.1
+tested-with: GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.2
 
 extra-source-files:
   CHANGELOG.md
diff --git a/src/Servant/HttpStreams/Internal.hs b/src/Servant/HttpStreams/Internal.hs
--- a/src/Servant/HttpStreams/Internal.hs
+++ b/src/Servant/HttpStreams/Internal.hs
@@ -141,7 +141,7 @@
     a <!> b = a `catchError` \_ -> b
 
 instance RunClient ClientM where
-    runRequest = performRequest
+    runRequestAcceptStatus = performRequest
     throwClientError = throwError
 
 instance RunStreamingClient ClientM where
@@ -155,8 +155,8 @@
     let Codensity f = runExceptT $ flip runReaderT env $ unClientM cm
     in f k
 
-performRequest :: Request -> ClientM Response
-performRequest req = do
+performRequest :: Maybe [Status] -> Request -> ClientM Response
+performRequest acceptStatus req = do
     ClientEnv burl conn <- ask
     let (req', body) = requestToClientRequest burl req
     x <- ClientM $ lift $ lift $ Codensity $ \k -> do
@@ -165,7 +165,10 @@
             let sc = Client.getStatusCode res'
             lbs <- BSL.fromChunks <$> Streams.toList body'
             let res'' = clientResponseToResponse res' lbs
-            if sc >= 200 && sc < 300
+                goodStatus = case acceptStatus of
+                  Nothing -> sc >= 200 && sc < 300
+                  Just good -> sc `elem` (statusCode <$> good)
+            if goodStatus
             then k (Right res'')
             else k (Left (mkFailureResponse burl req res''))
 
