diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 1.3.0.0 [2023-08-17]
+
+- Added `MonadFix` instance for `ValidateT`.
+
 # 1.2.0.2 [2023-08-17]
 
 - Added support for mtl 2.3.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# monad-validate [![Build Status](https://img.shields.io/github/actions/workflow/status/lexi-lambda/monad-validate/build.yml?branch=master)](https://github.com/lexi-lambda/monad-validate/actions/workflows/build.yml) [![Hackage](https://img.shields.io/badge/hackage-1.2.0.2-5e5184)][hackage]
+# monad-validate [![Build Status](https://img.shields.io/github/actions/workflow/status/lexi-lambda/monad-validate/build.yml?branch=master)](https://github.com/lexi-lambda/monad-validate/actions/workflows/build.yml) [![Hackage](https://img.shields.io/badge/hackage-1.3.0.0-5e5184)][hackage]
 
 A Haskell library providing the `ValidateT` monad transformer, designed for writing data validations that provide high-quality error reporting without much effort. `ValidateT` automatically exploits the data dependencies of your program—as encoded implicitly in uses of `fmap`, `<*>`, and `>>=`—to report as many errors as possible upon failure instead of completely aborting at the first one.
 
diff --git a/monad-validate.cabal b/monad-validate.cabal
--- a/monad-validate.cabal
+++ b/monad-validate.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.4
 name: monad-validate
-version: 1.2.0.2
+version: 1.3.0.0
 category: Control
 build-type: Simple
 
diff --git a/src/Control/Monad/Validate/Internal.hs b/src/Control/Monad/Validate/Internal.hs
--- a/src/Control/Monad/Validate/Internal.hs
+++ b/src/Control/Monad/Validate/Internal.hs
@@ -10,6 +10,7 @@
 import Control.Monad.Base
 import Control.Monad.Catch
 import Control.Monad.Except
+import Control.Monad.Fix
 import Control.Monad.Reader.Class
 import Control.Monad.State.Strict
 import Control.Monad.Trans.Control
@@ -302,6 +303,10 @@
 instance MonadTrans (ValidateT e) where
   lift m = ValidateT (lift $ lift m)
   {-# INLINE lift #-}
+
+instance (MonadFix m) => MonadFix (ValidateT e m) where
+  mfix f = ValidateT $ mfix (\x -> getValidateT (f x))
+  {-# INLINE mfix #-}
 
 instance (MonadIO m) => MonadIO (ValidateT e m) where
   liftIO = lift . liftIO
