diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # Revision history for base32
 
+## 0.3.1.0
+
+* Small bug fix
+* Doc updates
+
 ## 0.3
 
 * Bump lower bounds for `bytestring` and `text` to latest significant major/major version
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -24,4 +24,4 @@
 - Optics for handling more complex structures with Base32 representations via the `base32-lens` package
 - Checks for both validity and correctness of Base32 and Base32hex encodings
 
-There are no dependencies aside from those bundled with GHC, `text-short`, and the `ghc-byteorder` re-export.
+There are no dependencies aside from those bundled with GHC, `text-short`.
diff --git a/base32.cabal b/base32.cabal
--- a/base32.cabal
+++ b/base32.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.0
 name:               base32
-version:            0.3
+version:            0.3.1.0
 synopsis:           Fast RFC 4648-compliant Base32 encoding
 description:
   RFC 4648-compliant Base32 encodings and decodings.
diff --git a/src/Data/Text/Encoding/Base32.hs b/src/Data/Text/Encoding/Base32.hs
--- a/src/Data/Text/Encoding/Base32.hs
+++ b/src/Data/Text/Encoding/Base32.hs
@@ -54,7 +54,7 @@
 -- 4 for safe decoding as base32 encodings are optionally padded.
 --
 -- /Note:/ This function makes sure that decoding is total by deferring to
--- 'T.decodeLatin1'. This will always round trip for any valid Base32-encoded
+-- 'T.decodeUtf8'. This will always round trip for any valid Base32-encoded
 -- text value, but it may not round trip for bad inputs. The onus is on the
 -- caller to make sure inputs are valid. If unsure, defer to `decodeBase32With`
 -- and pass in a custom decode function.
@@ -73,7 +73,7 @@
 -- Left "Base32-encoded bytestring has invalid padding"
 --
 decodeBase32 :: Text -> Either Text Text
-decodeBase32 = fmap T.decodeLatin1
+decodeBase32 = fmap T.decodeUtf8
     . B32.decodeBase32
     . T.encodeUtf8
 {-# INLINE decodeBase32 #-}
@@ -118,7 +118,7 @@
 -- | Decode an unpadded Base32 encoded 'Text' value.
 --
 -- /Note:/ This function makes sure that decoding is total by deferring to
--- 'T.decodeLatin1'. This will always round trip for any valid Base32-encoded
+-- 'T.decodeUtf8'. This will always round trip for any valid Base32-encoded
 -- text value, but it may not round trip for bad inputs. The onus is on the
 -- caller to make sure inputs are valid. If unsure, defer to `decodeBase32WUnpaddedWith`
 -- and pass in a custom decode function.
@@ -134,7 +134,7 @@
 -- Left "Base32-encoded bytestring has invalid padding"
 --
 decodeBase32Unpadded :: Text -> Either Text Text
-decodeBase32Unpadded = fmap T.decodeLatin1
+decodeBase32Unpadded = fmap T.decodeUtf8
     . B32.decodeBase32Unpadded
     . T.encodeUtf8
 {-# INLINE decodeBase32Unpadded #-}
@@ -167,7 +167,7 @@
 -- | Decode an padded Base32 encoded 'Text' value
 --
 -- /Note:/ This function makes sure that decoding is total by deferring to
--- 'T.decodeLatin1'. This will always round trip for any valid Base32-encoded
+-- 'T.decodeUtf8'. This will always round trip for any valid Base32-encoded
 -- text value, but it may not round trip for bad inputs. The onus is on the
 -- caller to make sure inputs are valid. If unsure, defer to `decodeBase32PaddedWith`
 -- and pass in a custom decode function.
@@ -183,7 +183,7 @@
 -- Left "Base32-encoded bytestring requires padding"
 --
 decodeBase32Padded :: Text -> Either Text Text
-decodeBase32Padded = fmap T.decodeLatin1
+decodeBase32Padded = fmap T.decodeUtf8
     . B32.decodeBase32Padded
     . T.encodeUtf8
 {-# INLINE decodeBase32Padded #-}
