diff --git a/hspec-smallcheck.cabal b/hspec-smallcheck.cabal
--- a/hspec-smallcheck.cabal
+++ b/hspec-smallcheck.cabal
@@ -1,11 +1,11 @@
--- This file has been generated from package.yaml by hpack version 0.21.2.
+-- This file has been generated from package.yaml by hpack version 0.27.0.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 9cd99f0806cf8dfefb5b2761767e11bcc64bbb719b6d31200201b36702038392
+-- hash: 2fe681bca0766b159304a8582e5751a076fd3feb25e780316d6dbac9d0b27d10
 
 name:             hspec-smallcheck
-version:          0.5.0
+version:          0.5.1
 license:          MIT
 license-file:     LICENSE
 copyright:        (c) 2013-2018 Simon Hengel
@@ -36,7 +36,7 @@
       HUnit
     , base >=4.5.0.0 && <5
     , call-stack
-    , hspec-core ==2.4.*
+    , hspec-core >=2.5.0
     , smallcheck >=1.1
   default-language: Haskell2010
 
@@ -53,7 +53,7 @@
     , base >=4.5.0.0 && <5
     , call-stack
     , hspec
-    , hspec-core ==2.4.*
+    , hspec-core >=2.5.0
     , hspec-smallcheck
     , smallcheck >=1.1
   default-language: Haskell2010
@@ -78,6 +78,6 @@
     , base >=4.5.0.0 && <5
     , call-stack
     , hspec
-    , hspec-core ==2.4.*
+    , hspec-core >=2.5.0
     , smallcheck >=1.1
   default-language: Haskell2010
diff --git a/src/Test/Hspec/SmallCheck.hs b/src/Test/Hspec/SmallCheck.hs
--- a/src/Test/Hspec/SmallCheck.hs
+++ b/src/Test/Hspec/SmallCheck.hs
@@ -27,7 +27,6 @@
   locationFile = srcLocFile loc
 , locationLine = srcLocStartLine loc
 , locationColumn = srcLocStartCol loc
-, locationAccuracy = ExactLocation
 }
 
 instance Testable IO (IO ()) where
@@ -52,7 +51,7 @@
           n <- readIORef counter
           reportProgress (n, 0)
     r <- smallCheckWithHook (paramsSmallCheckDepth c) hook p
-    return $ case r of
+    return . Result "" $ case r of
       Just e -> case T.parseResult (ppFailure e) of
         (m, Just (T.Failure loc reason)) -> Failure loc $ case reason of
           T.Reason err -> Reason (fromMaybe "" $ T.concatPrefix m err)
diff --git a/test/Test/Hspec/SmallCheckSpec.hs b/test/Test/Hspec/SmallCheckSpec.hs
--- a/test/Test/Hspec/SmallCheckSpec.hs
+++ b/test/Test/Hspec/SmallCheckSpec.hs
@@ -1,9 +1,13 @@
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
 module Test.Hspec.SmallCheckSpec (main, spec) where
 
 import           Test.Hspec
 
+import qualified Control.Exception as E
+
 import qualified Test.Hspec.Core.Spec as H
 import qualified Test.Hspec.Runner as H
 import           Test.SmallCheck
@@ -15,30 +19,43 @@
 main :: IO ()
 main = hspec spec
 
+exceptionEq :: E.SomeException -> E.SomeException -> Bool
+exceptionEq a b
+  | Just ea <- E.fromException a, Just eb <- E.fromException b = ea == (eb :: E.ErrorCall)
+  | Just ea <- E.fromException a, Just eb <- E.fromException b = ea == (eb :: E.ArithException)
+  | otherwise = undefined
+
+deriving instance Eq H.FailureReason
+deriving instance Eq H.ResultStatus
+deriving instance Eq H.Result
+
+instance Eq E.SomeException where
+  (==) = exceptionEq
+
 spec :: Spec
 spec = do
   describe "evaluateExample" $ do
     context "with Property IO" $ do
       it "returns Success if property holds" $ do
-        eval True `shouldReturn` H.Success
+        eval True `shouldReturn` H.Result "" H.Success
 
       it "returns Failure if property does not hold" $ do
-        eval False `shouldReturn` H.Failure Nothing (H.Reason "condition is false")
+        eval False `shouldReturn` H.Result "" (H.Failure Nothing (H.Reason "condition is false"))
 
       it "shows what falsified it" $ do
-        eval (/= (2 :: Int)) `shouldReturn` H.Failure Nothing (H.Reason "there exists 2 such that\n  condition is false")
+        eval (/= (2 :: Int)) `shouldReturn` H.Result "" (H.Failure Nothing (H.Reason "there exists 2 such that\n  condition is false"))
 
       it "propagates exceptions" $ do
         eval (error "foobar" :: Property IO) `shouldThrow` errorCall "foobar"
 
       context "with HUnit Assertion" $ do
         it "includes failure reason" $ do
-          H.Failure _loc reason <- eval ((\ _ -> assertFailure "some failure") :: Int -> Assertion)
+          H.Result "" (H.Failure _loc reason) <- eval ((\ _ -> assertFailure "some failure") :: Int -> Assertion)
           reason `shouldBe` H.Reason "there exists 0 such that\nsome failure"
 
         context "with assertEqual" $ do
           it "includes actual and expected" $ do
-            H.Failure _loc reason <- eval (assertEqual "foo" (42 :: Int))
+            H.Result "" (H.Failure _loc reason) <- eval (assertEqual "foo" (42 :: Int))
             reason `shouldBe` H.ExpectedButGot (Just "there exists 0 such that\nfoo") "42" "0"
   where
     eval :: Testable IO a => a -> IO H.Result
