diff --git a/Test/Tasty/Hspec.hs b/Test/Tasty/Hspec.hs
--- a/Test/Tasty/Hspec.hs
+++ b/Test/Tasty/Hspec.hs
@@ -21,7 +21,7 @@
 import           Data.Proxy
 import           Data.Typeable          (Typeable)
 import qualified Test.Hspec             as H
-import qualified Test.Hspec.Core        as H
+import qualified Test.Hspec.Core.Spec   as H
 import qualified Test.Hspec.Runner      as H
 import qualified Test.QuickCheck        as QC
 import qualified Test.QuickCheck.Random as QC
@@ -43,22 +43,26 @@
 testSpec :: T.TestName -> H.Spec -> IO T.TestTree
 testSpec name spec = H.runSpecM spec >>= fmap (T.testGroup name . join) . mapM specTreeToTestTrees
 
-specTreeToTestTrees :: H.SpecTree -> IO [T.TestTree]
-specTreeToTestTrees (H.SpecGroup name specs) = return . T.testGroup name . join <$> mapM specTreeToTestTrees specs
-specTreeToTestTrees (H.BuildSpecs action)    = action >>= fmap join . mapM specTreeToTestTrees
-specTreeToTestTrees (H.SpecItem name item)   = return [T.singleTest name (Item item)]
+specTreeToTestTrees :: H.SpecTree () -> IO [T.TestTree]
+specTreeToTestTrees (H.Node name spec_trees) = do
+    test_trees <- join <$> mapM specTreeToTestTrees spec_trees
+    return [T.testGroup name test_trees]
+specTreeToTestTrees (H.NodeWithCleanup cleanup spec_trees) = do
+    cleanup ()
+    join <$> mapM specTreeToTestTrees spec_trees
+specTreeToTestTrees (H.Leaf item) = return [T.singleTest (H.itemRequirement item) (Item item)]
 
 hspecResultToTastyResult :: H.Result -> T.Result
 hspecResultToTastyResult H.Success        = T.testPassed ""
 hspecResultToTastyResult (H.Pending mstr) = T.testFailed ("test pending" ++ maybe "" (": " ++) mstr)
 hspecResultToTastyResult (H.Fail str)     = T.testFailed str
 
-newtype Item = Item H.Item
+newtype Item = Item (H.Item ())
     deriving Typeable
 
 instance T.IsTest Item where
-    run opts (Item (H.Item _ example)) progress =
-        hspecResultToTastyResult <$> example params id hprogress
+    run opts (Item (H.Item _ _ _ example)) progress =
+        hspecResultToTastyResult <$> example params ($ ()) hprogress
       where
         params :: H.Params
         params = H.Params
diff --git a/tasty-hspec.cabal b/tasty-hspec.cabal
--- a/tasty-hspec.cabal
+++ b/tasty-hspec.cabal
@@ -1,5 +1,5 @@
 name:                tasty-hspec
-version:             0.2
+version:             1.0
 synopsis:            Hspec support for the Tasty test framework.
 description:         Hspec support for the Tasty test framework.
 
@@ -16,7 +16,8 @@
   exposed-modules:     Test.Tasty.Hspec
   other-extensions:    DeriveDataTypeable
   build-depends:       base             ==4.*
-                     , hspec            >=1.11.0 && <1.12.0
+                     , hspec            >=2      && <3
+                     , hspec-core       >=2      && <3
                      , QuickCheck       >=2.7    && <3
                      , tasty            >= 0.8   && <1.0
                      , tasty-smallcheck >=0.1    && <0.9
