diff --git a/changelog.md b/changelog.md
index a38f00e1e9727f71b1f3ad0132bbd4ebd2c95731..4bbeaf4d7768a5a0810a5d1bc4bf48d69c00d139 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,4 +1,4 @@
-### 1.2.3.1 TBD
+### 1.2.3.1
 
 * Make `decodeUtf8With` fail explicitly for unsupported non-BMP
   replacement characters instead silent undefined behaviour (gh-213)
@@ -6,6 +6,12 @@
 * Fix termination condition for file reads via `Data.Text.IO`
   operations (gh-223)
 
+* A serious correctness issue affecting uses of `take` and `drop` with
+  negative counts has been fixed (gh-227)
+
+* A bug in the case-mapping functions resulting in unreasonably large
+  allocations with large arguments has been fixed (gh-221)
+
 ### 1.2.3.0
 
 * Spec compliance: `toCaseFold` now follows the Unicode 9.0 spec
diff --git a/text.cabal b/text.cabal
index 5d0f3e64e539080e463ad888bd584117304a8762..bd8591bb3f51919d7fecd838fd524d9c1927f741 100644
--- a/text.cabal
+++ b/text.cabal
@@ -1,5 +1,7 @@
+cabal-version:  >= 1.8
 name:           text
-version:        1.2.3.0
+version:        1.2.3.1
+
 homepage:       https://github.com/haskell/text
 bug-reports:    https://github.com/haskell/text/issues
 synopsis:       An efficient packed Unicode text type.
@@ -37,11 +39,10 @@ description:
 license:        BSD2
 license-file:   LICENSE
 author:         Bryan O'Sullivan <bos@serpentine.com>
-maintainer:     Bryan O'Sullivan <bos@serpentine.com>
+maintainer:     Bryan O'Sullivan <bos@serpentine.com>, Herbert Valerio Riedel <hvr@gnu.org>
 copyright:      2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper
 category:       Data, Text
 build-type:     Simple
-cabal-version:  >= 1.8
 tested-with:    GHC==8.6.1, GHC==8.4.3,
                 GHC==8.2.2, GHC==8.0.2, GHC==7.10.3, GHC==7.8.4,
                 GHC==7.6.3, GHC==7.4.2, GHC==7.2.2, GHC==7.0.4
@@ -152,7 +153,7 @@ library
     build-depends: bytestring         >= 0.9    && < 0.10.4,
                    bytestring-builder >= 0.10.4
   else
-    build-depends: bytestring         >= 0.10.4
+    build-depends: bytestring         >= 0.10.4 && < 0.11
 
   cpp-options: -DHAVE_DEEPSEQ
   ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -O2
@@ -166,7 +167,7 @@ library
     build-depends: integer-simple >= 0.1 && < 0.5
   else
     cpp-options: -DINTEGER_GMP
-    build-depends: integer-gmp >= 0.2
+    build-depends: integer-gmp >= 0.2 && < 1.1
 
 test-suite tests
   type:           exitcode-stdio-1.0