diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Changelog
 
+## [0.3.0.1] - 2022-06-04
+
+### Added
+
+* Compatibility with `hspec 2.7`
+
 ## [0.3.0.0] - 2022-04-28
 
 ### Added
diff --git a/src/Test/Syd/Hspec.hs b/src/Test/Syd/Hspec.hs
--- a/src/Test/Syd/Hspec.hs
+++ b/src/Test/Syd/Hspec.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE LambdaCase #-}
 {-# LANGUAGE RecordWildCards #-}
@@ -32,15 +33,21 @@
   doNotRandomiseExecutionOrder $ sequential $ mapM_ importSpecTree trees
   pure result
 
+-- Hspec.NodeWithCleanup's semantics are so weird that we can only do
+-- this translation if inner equals ().
 importSpecTree :: Hspec.SpecTree () -> Syd.Spec
 importSpecTree = go
   where
     go = \case
       Hspec.Leaf item -> importItem item
       Hspec.Node d ts -> describe d $ mapM_ go ts
-      -- Hspec.NodeWithCleanup's semantics are so weird that we can only do
-      -- this translation if inner equals ().
-      Hspec.NodeWithCleanup _ cleanup ts -> afterAll_ (cleanup ()) $ mapM_ go ts
+
+#if MIN_VERSION_hspec_core(2,8,0)
+      Hspec.NodeWithCleanup _ cleanup ts -> afterAll_ (cleanup ()) (mapM_ go ts)
+
+#else
+      Hspec.NodeWithCleanup cleanup ts ->   afterAll_ (cleanup ()) (mapM_ go ts)
+#endif
 
 importItem :: forall inner. Hspec.Item inner -> Syd.TestDefM '[] inner ()
 importItem item@Hspec.Item {..} =
diff --git a/sydtest-hspec.cabal b/sydtest-hspec.cabal
--- a/sydtest-hspec.cabal
+++ b/sydtest-hspec.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           sydtest-hspec
-version:        0.3.0.0
+version:        0.3.0.1
 synopsis:       An Hspec companion library for sydtest
 category:       Testing
 homepage:       https://github.com/NorfairKing/sydtest#readme
@@ -34,7 +34,7 @@
   build-depends:
       QuickCheck
     , base >=4.7 && <5
-    , hspec-core >=2.8
+    , hspec-core >=2.7.10
     , mtl
     , stm
     , sydtest >=0.9.0.0
