diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,12 @@
 
 `hslua-objectorientation` uses [PVP Versioning][].
 
+## hslua-objectorientation-2.2.0.1
+
+Released 2022-05-20.
+
+-   Relax upper bound for mtl, allow mtl-2.3.
+
 ## hslua-objectorientation-2.2.0
 
 Released 2022-02-19.
diff --git a/hslua-objectorientation.cabal b/hslua-objectorientation.cabal
--- a/hslua-objectorientation.cabal
+++ b/hslua-objectorientation.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                hslua-objectorientation
-version:             2.2.0
+version:             2.2.0.1
 synopsis:            Object orientation tools for HsLua
 description:         Expose Haskell objects to Lua with an object oriented
                      interface.
@@ -37,7 +37,7 @@
                      , exceptions        >= 0.8    && < 0.11
                      , hslua-core        >= 2.2    && < 2.3
                      , hslua-marshalling >= 2.2    && < 2.3
-                     , mtl               >= 2.2    && < 2.3
+                     , mtl               >= 2.2    && < 2.4
                      , text              >= 1.2    && < 2.1
   ghc-options:         -Wall
                        -Wincomplete-record-updates
diff --git a/src/HsLua/ObjectOrientation.hs b/src/HsLua/ObjectOrientation.hs
--- a/src/HsLua/ObjectOrientation.hs
+++ b/src/HsLua/ObjectOrientation.hs
@@ -38,8 +38,7 @@
   , AliasIndex (..)
   ) where
 
-import Control.Monad.Except
-import Foreign.Ptr (FunPtr)
+import Control.Monad ((<$!>), forM_, void, when)
 import Data.Maybe (mapMaybe)
 import Data.Map (Map)
 #if !MIN_VERSION_base(4,12,0)
@@ -48,6 +47,7 @@
 import Data.String (IsString (..))
 import Data.Text (Text)
 import Data.Void (Void)
+import Foreign.Ptr (FunPtr)
 import HsLua.Core as Lua
 import HsLua.Marshalling
 import HsLua.ObjectOrientation.Operation
