diff --git a/System/Glib/GError.chs b/System/Glib/GError.chs
--- a/System/Glib/GError.chs
+++ b/System/Glib/GError.chs
@@ -192,7 +192,7 @@
 
 -- | This will catch any GError exception. The handler function will receive the
 --   raw GError. This is probably only useful when you want to take some action
---   that does not depend on which GError exception has occured, otherwise it
+--   that does not depend on which GError exception has occurred, otherwise it
 --   would be better to use either 'catchGErrorJust' or 'catchGErrorJustDomain'.
 --   For example:
 --
@@ -214,7 +214,7 @@
 -- > do image <- catchGErrorJust PixbufErrorCorruptImage
 -- >               loadImage
 -- >               (\errorMessage -> do log errorMessage
--- >                                    return mssingImagePlaceholder)
+-- >                                    return missingImagePlaceholder)
 --
 catchGErrorJust :: GErrorClass err => err  -- ^ The error to catch
                 -> IO a                    -- ^ The computation to run
@@ -248,7 +248,7 @@
           | fromIntegral domain == gerrorDomain (undefined::err) = handler (toEnum code) msg
           | otherwise                                            = throwGError gerror
 
--- | A verson of 'catchGError' with the arguments swapped around.
+-- | A version of 'catchGError' with the arguments swapped around.
 --
 -- > handleGError (\(GError dom code msg) -> ...) $
 -- >   ...
@@ -257,11 +257,11 @@
 handleGError = handle
 {-# DEPRECATED handleGError "Use ordinary Control.Exception.handle" #-}
 
--- | A verson of 'handleGErrorJust' with the arguments swapped around.
+-- | A version of 'handleGErrorJust' with the arguments swapped around.
 handleGErrorJust :: GErrorClass err => err -> (GErrorMessage -> IO a) -> IO a -> IO a
 handleGErrorJust code = flip (catchGErrorJust code)
 
--- | A verson of 'catchGErrorJustDomain' with the arguments swapped around.
+-- | A version of 'catchGErrorJustDomain' with the arguments swapped around.
 handleGErrorJustDomain :: GErrorClass err => (err -> GErrorMessage -> IO a) -> IO a -> IO a
 handleGErrorJustDomain = flip catchGErrorJustDomain
 
diff --git a/System/Glib/GObject.chs b/System/Glib/GObject.chs
--- a/System/Glib/GObject.chs
+++ b/System/Glib/GObject.chs
@@ -111,7 +111,7 @@
 -- It should be used whenever a function returns a pointer to an existing
 -- 'GObject' (as opposed to a function that constructs a new object).
 --
--- * The first argument is the contructor of the specific object.
+-- * The first argument is the constructor of the specific object.
 --
 makeNewGObject ::
     GObjectClass obj
@@ -139,7 +139,7 @@
 constructNewGObject (constr, objectUnref) generator = do
   objPtr <- generator
 #if GLIB_CHECK_VERSION(2,10,0)
-  -- change the exisiting floating reference into a proper reference;
+  -- change the existing floating reference into a proper reference;
   -- the name is confusing, what the function does is ref,sink,unref
   objectRefSink objPtr
 #endif
@@ -207,7 +207,7 @@
 --
 -- * Note that this function may crash the Haskell run-time since the
 --   returned type can be forced to be anything. See 'objectCreateAttribute'
---   for a safe wrapper around this funciton.
+--   for a safe wrapper around this function.
 --
 objectGetAttributeUnsafe :: GObjectClass o => Quark -> o -> IO (Maybe a)
 objectGetAttributeUnsafe attr obj = do
diff --git a/System/Glib/Signals.chs b/System/Glib/Signals.chs
--- a/System/Glib/Signals.chs
+++ b/System/Glib/Signals.chs
@@ -27,7 +27,7 @@
 --    the marshall list mentions OBJECT it refers to an instance of this
 --    GObject which is automatically wrapped with a ref and unref call.
 --    Structures which are not derived from GObject have to be passed as
---    BOXED which gives the signal connect function a possiblity to do the
+--    BOXED which gives the signal connect function a possibility to do the
 --    conversion into a proper ForeignPtr type. In special cases the signal
 --    connect function use a PTR type which will then be mangled in the
 --    user function directly. The latter is needed if a signal delivers a
@@ -113,7 +113,7 @@
 --
 data GObjectClass o => ConnectId o = ConnectId {#type gulong#} o
 
--- old name for backwards compatability
+-- old name for backwards compatibility
 disconnect :: GObjectClass obj => ConnectId obj -> IO ()
 disconnect = signalDisconnect
 {-# DEPRECATED disconnect "use signalDisconnect instead" #-}
@@ -130,7 +130,7 @@
 --
 -- * Blocks a handler of an instance so it will not be called during any
 --   signal emissions unless it is unblocked again. Thus \"blocking\" a signal
---   handler means to temporarily deactive it, a signal handler has to be
+--   handler means to temporarily deactivate it, a signal handler has to be
 --   unblocked exactly the same amount of times it has been blocked before
 --   to become active again.
 --
diff --git a/System/Glib/hsgclosure.c b/System/Glib/hsgclosure.c
--- a/System/Glib/hsgclosure.c
+++ b/System/Glib/hsgclosure.c
@@ -117,7 +117,7 @@
     
     /* barf if anything went wrong */
     /* TODO: pass a sensible value for call site so we get better error messages */
-    /* or perhaps we can propogate any error? */
+    /* or perhaps we can propagate any error? */
     rts_checkSchedStatus("gtk2hs_closure_marshal", cap);
     WHEN_DEBUG(g_debug("gtk2hs_closure_marshal(%p): ret=%p", hc->callback, ret));
     
diff --git a/glib.cabal b/glib.cabal
--- a/glib.cabal
+++ b/glib.cabal
@@ -1,6 +1,6 @@
-cabal-version:  3.0
+cabal-version:  2.2
 Name:           glib
-Version:        0.13.10.0
+Version:        0.13.11.0
 License:        LGPL-2.1-only
 License-file:   COPYING
 Copyright:      (c) 2001-2010 The Gtk2Hs Team
@@ -17,7 +17,7 @@
                 as much functionality as required to support the packages that
                 wrap libraries that are themselves based on GLib.
 Category:       System
-Tested-With:    GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.1
+Tested-With:    GHC == 9.10.1, GHC == 9.8.2, GHC == 9.6.6, GHC == 9.4.8, GHC == 9.2.8, GHC==9.0.2, GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2
 Extra-Source-Files:
                 System/Glib/hsgclosure.c
                 System/Glib/hsgclosure.h
@@ -32,15 +32,15 @@
 
 custom-setup
   setup-depends: base >= 4.6 && < 5,
-                 Cabal >= 2.0 && < 3.11,
+                 Cabal >= 2.2 && < 3.13,
                  gtk2hs-buildtools >= 0.13.2.0 && < 0.14
 
 Library
         build-depends:  base >= 4 && < 5,
                         utf8-string >= 0.2 && < 1.1,
-                        bytestring >= 0.9.1.10 && < 0.12,
-                        text >= 1.0.0.0 && < 2.1,
-                        containers < 0.7
+                        bytestring >= 0.9.1.10 && < 0.13,
+                        text >= 1.0.0.0 && < 2.2,
+                        containers < 0.8
         cpp-options:    -U__BLOCKS__ -DGLIB_DISABLE_DEPRECATION_WARNINGS
         if os(darwin) || os(freebsd)
           cpp-options: -D_Nullable= -D_Nonnull= -D_Noreturn= -D__attribute__(x)=
