diff --git a/hspec.cabal b/hspec.cabal
--- a/hspec.cabal
+++ b/hspec.cabal
@@ -1,9 +1,9 @@
--- This file has been generated from package.yaml by hpack version 0.14.1.
+-- This file has been generated from package.yaml by hpack version 0.15.0.
 --
 -- see: https://github.com/sol/hpack
 
 name:             hspec
-version:          2.2.4
+version:          2.3.0
 license:          MIT
 license-file:     LICENSE
 copyright:        (c) 2011-2015 Simon Hengel,
@@ -44,12 +44,13 @@
       src
   build-depends:
       base == 4.*
-    , hspec-core == 2.2.4
-    , hspec-discover == 2.2.4
-    , hspec-expectations == 0.7.2.*
+    , hspec-core == 2.3.0
+    , hspec-discover == 2.3.0
+    , hspec-expectations == 0.8.0.*
     , transformers >= 0.2.2.0
     , QuickCheck >= 2.5.1
     , HUnit >= 1.2.5
+    , call-stack
   exposed-modules:
       Test.Hspec
       Test.Hspec.Core
@@ -74,14 +75,15 @@
       Test.Hspec.DiscoverSpec
   build-depends:
       base == 4.*
-    , hspec-core == 2.2.4
-    , hspec-discover == 2.2.4
-    , hspec-expectations == 0.7.2.*
+    , hspec-core == 2.3.0
+    , hspec-discover == 2.3.0
+    , hspec-expectations == 0.8.0.*
     , transformers >= 0.2.2.0
     , QuickCheck >= 2.5.1
     , HUnit >= 1.2.5
+    , call-stack
     , hspec
     , directory
     , stringbuilder
-    , hspec-meta >= 2.2.0
+    , hspec-meta >= 2.3.0
   default-language: Haskell2010
diff --git a/src/Test/Hspec/QuickCheck.hs b/src/Test/Hspec/QuickCheck.hs
--- a/src/Test/Hspec/QuickCheck.hs
+++ b/src/Test/Hspec/QuickCheck.hs
@@ -1,8 +1,5 @@
-{-# LANGUAGE CPP #-}
-#if MIN_VERSION_base(4,8,1)
-#define HAS_SOURCE_LOCATIONS
-{-# LANGUAGE ImplicitParams #-}
-#endif
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE ConstraintKinds #-}
 module Test.Hspec.QuickCheck (
 -- * Params
   modifyMaxSuccess
@@ -13,9 +10,7 @@
 , prop
 ) where
 
-#ifdef HAS_SOURCE_LOCATIONS
-import           GHC.Stack
-#endif
+import           Data.CallStack
 
 import           Test.Hspec
 import           Test.QuickCheck
@@ -29,9 +24,5 @@
 --
 -- > it ".." $ property $
 -- >   ..
-#ifdef HAS_SOURCE_LOCATIONS
-prop :: (?loc :: CallStack, Testable prop) => String -> prop -> Spec
-#else
-prop :: (Testable prop) => String -> prop -> Spec
-#endif
+prop :: (HasCallStack, Testable prop) => String -> prop -> Spec
 prop s = it s . property
diff --git a/test/Helper.hs b/test/Helper.hs
--- a/test/Helper.hs
+++ b/test/Helper.hs
@@ -8,6 +8,8 @@
 import           System.IO
 import           Test.Hspec.Meta
 
+import           Test.Hspec.QuickCheck ()
+
 withFileContent :: String -> (FilePath -> IO a) -> IO a
 withFileContent input action = do
   dir <- getTemporaryDirectory
