diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,16 +1,21 @@
+
+## 2.2.0.1
+
+*   Disable doctests for GHC-9. [#39](https://github.com/cdepillabout/servant-checked-exceptions/issues/39)
+
 ## 2.2.0.0
 
-*   Add the `EnvelopeT` monad transformer. [#32]
+*   Add the `EnvelopeT` monad transformer. [#32](https://github.com/cdepillabout/servant-checked-exceptions/pull/32)
 
 *   Add a few combinators for `Envelope`:
 
-        - `envelopeRemove`
-        - `envelopeHandle`
-        - `relaxEnvelope`
-        - `liftA2Envelope`
-        - `bindEnvelope`
+    - `envelopeRemove`
+    - `envelopeHandle`
+    - `relaxEnvelope`
+    - `liftA2Envelope`
+    - `bindEnvelope`
 
-    [#32]
+    [#32](https://github.com/cdepillabout/servant-checked-exceptions/pull/32)
 
 ## 2.1.0.0
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 Servant.Checked.Exceptions
 ==========================
 
-[![Build Status](https://secure.travis-ci.org/cdepillabout/servant-checked-exceptions.svg)](http://travis-ci.org/cdepillabout/servant-checked-exceptions)
+[![Build Status](https://github.com/cdepillabout/servant-checked-exceptions/workflows/CI/badge.svg)](https://github.com/cdepillabout/servant-checked-exceptions)
 [![Hackage](https://img.shields.io/hackage/v/servant-checked-exceptions.svg)](https://hackage.haskell.org/package/servant-checked-exceptions)
 [![Stackage LTS](http://stackage.org/package/servant-checked-exceptions/badge/lts)](http://stackage.org/lts/package/servant-checked-exceptions)
 [![Stackage Nightly](http://stackage.org/package/servant-checked-exceptions/badge/nightly)](http://stackage.org/nightly/package/servant-checked-exceptions)
@@ -87,10 +87,10 @@
 
 ## Example
 
-This repository contains an [example](example/) of using
-`servant-checked-exceptions`.  This includes an [api](example/Api.hs),
-[server](example/Server.hs), [client](example/Client.hs), and
-[documentation](example/Docs.hs).
+This repository contains an [example](servant-checked-exceptions/example/) of using
+`servant-checked-exceptions`.  This includes an [api](servant-checked-exceptions/example/Api.hs),
+[server](servant-checked-exceptions/example/Server.hs), [client](servant-checked-exceptions/example/Client.hs), and
+[documentation](servant-checked-exceptions-core/example/Docs.hs).
 
 Below I show how to compile and run these examples.
 
@@ -99,7 +99,7 @@
 The examples can be compiled by using the `buildexample` flag:
 
 ```sh
-$ stack build --flag servant-checked-exceptions:buildexample
+$ stack build --flag servant-checked-exceptions-core:buildexample --flag servant-checked-exceptions:buildexample
 ```
 
 This creates three executables.  A server, a client, and a documentaiton
@@ -178,7 +178,7 @@
 The documentation generator will generate documentation for the api in Markdown:
 
 ```sh
-$ stack exec -- servant-checked-exceptions-example-docs
+$ stack exec -- servant-checked-exceptions-core-example-docs
 ```
 
 Here is a small example of the documentation that will be generated for the lax
@@ -219,6 +219,14 @@
 and `servant-server`. This can be useful if you are writing an API meant to be
 shared with ghcjs and run in a browser, where these dependencies aren't
 available.
+
+## Limitations
+
+Currently, `servant-client` only treats HTTP responses as successful if they
+have a status code of 2XX.  This means that any non-2XX errors thrown by
+`servant-checked-exceptions` don't get parsed into a typed `Envelope` as
+expected, but raised as a Servant `ClientError`.  For more information, see
+[issue #27](https://github.com/cdepillabout/servant-checked-exceptions/issues/27).
 
 ## Maintainers
 
diff --git a/servant-checked-exceptions-core.cabal b/servant-checked-exceptions-core.cabal
--- a/servant-checked-exceptions-core.cabal
+++ b/servant-checked-exceptions-core.cabal
@@ -1,5 +1,5 @@
 name:                servant-checked-exceptions-core
-version:             2.2.0.0
+version:             2.2.0.1
 synopsis:            Checked exceptions for Servant APIs.
 description:         Please see <https://github.com/cdepillabout/servant-checked-exceptions#readme README.md>.
 homepage:            https://github.com/cdepillabout/servant-checked-exceptions
@@ -7,7 +7,7 @@
 license-file:        LICENSE
 author:              Dennis Gosnell
 maintainer:          cdep.illabout@gmail.com
-copyright:           2017-2018 Dennis Gosnell
+copyright:           2017-2021 Dennis Gosnell
 category:            Web
 build-type:          Simple
 extra-source-files:  CHANGELOG.md
@@ -81,8 +81,14 @@
   build-depends:       base
                      , doctest
                      , Glob
+                     , servant-checked-exceptions-core
   default-language:    Haskell2010
-  ghc-options:         -Wall -threaded -rtsopts -with-rtsopts=-N
+  ghc-options:         -Wall
+  -- Doctests appear not to work with GHC-9.0.1.
+  if impl(ghc < 9.0.1)
+    buildable:         True
+  else
+    buildable:         False
 source-repository head
   type:     git
   location: git@github.com:cdepillabout/servant-checked-exceptions.git
diff --git a/src/Servant/Checked/Exceptions/Internal/Servant/API.hs b/src/Servant/Checked/Exceptions/Internal/Servant/API.hs
--- a/src/Servant/Checked/Exceptions/Internal/Servant/API.hs
+++ b/src/Servant/Checked/Exceptions/Internal/Servant/API.hs
@@ -68,6 +68,9 @@
     c :> Throwing es :> api
 
 
+-- | Note that clients generated by @servant-client@ currently don't handle
+-- status codes outside the @2XX@ range correctly.
+-- Take a look at the README for more details.
 class ErrStatus e where
   toErrStatus :: e -> Status
 
