diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+### 0.22.2
+
++ Reinstate the new' method.
+
 ### 0.22.1
 
 + Fix a memory allocation error in [GClosure](https://hackage.haskell.org/package/haskell-gi-base-0.22.0/docs/Data-GI-Base.html#t:GClosure) that could lead to crashes.
diff --git a/Data/GI/Base/GObject.hsc b/Data/GI/Base/GObject.hsc
--- a/Data/GI/Base/GObject.hsc
+++ b/Data/GI/Base/GObject.hsc
@@ -13,6 +13,7 @@
 module Data.GI.Base.GObject
     ( -- * Constructing new `GObject`s
       constructGObject
+    , new'
 
     -- * User data
     , gobjectGetUserData
@@ -91,6 +92,14 @@
                  IO (GValueConstruct o)
     construct (attr := x) = attrConstruct (resolve attr) x
     construct (attr :=> x) = x >>= attrConstruct (resolve attr)
+
+-- | Construct the given `GObject`, given a set of actions
+-- constructing desired `GValue`s to set at construction time.
+new' :: (MonadIO m, GObject o) =>
+        (ManagedPtr o -> o) -> [IO (GValueConstruct o)] -> m o
+new' constructor actions = do
+  props <- liftIO $ sequence (actions)
+  doConstructGObject constructor props
 
 -- | Construct the `GObject` given the list of `GValueConstruct`s.
 doConstructGObject :: forall o m. (GObject o, MonadIO m)
diff --git a/haskell-gi-base.cabal b/haskell-gi-base.cabal
--- a/haskell-gi-base.cabal
+++ b/haskell-gi-base.cabal
@@ -1,5 +1,5 @@
 name:                haskell-gi-base
-version:             0.22.1
+version:             0.22.2
 synopsis:            Foundation for libraries generated by haskell-gi
 description:         Foundation for libraries generated by haskell-gi
 homepage:            https://github.com/haskell-gi/haskell-gi-base
