diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -23,13 +23,15 @@
 `build-type: Custom` in your `.cabal`:
 
 ```haskell
-import Distribution.Simple
+import Distribution.Simple (defaultMainWithHooks, simpleUserHooks, postBuild)
+import Distribution.Simple.LocalBuildInfo (buildDir)
 import System.Executable.Hash.Internal (maybeInjectExecutableHash)
+import System.FilePath ((</>))
 
 main :: IO ()
 main = defaultMainWithHooks $ simpleUserHooks
-    { postBuild = \_ _ _ _ ->
-        maybeInjectExecutableHash "dist/build/path-to/your-executable"
+    { postBuild = \_ _ _ buildInfo ->
+        maybeInjectExecutableHash (buildDir buildInfo </> "exeName/exeName")
     }
 ```
 
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,8 +1,10 @@
-import Distribution.Simple
+import Distribution.Simple (defaultMainWithHooks, simpleUserHooks, postBuild)
+import Distribution.Simple.LocalBuildInfo (buildDir)
 import System.Executable.Hash.Internal (maybeInjectExecutableHash)
+import System.FilePath ((</>))
 
 main :: IO ()
 main = defaultMainWithHooks $ simpleUserHooks
-    { postBuild = \_ _ _ _ ->
-        maybeInjectExecutableHash "dist/build/test-inject/test-inject"
+    { postBuild = \_ _ _ buildInfo ->
+        maybeInjectExecutableHash (buildDir buildInfo </> "test-inject/test-inject")
     }
diff --git a/System/Executable/Hash.hs b/System/Executable/Hash.hs
--- a/System/Executable/Hash.hs
+++ b/System/Executable/Hash.hs
@@ -10,13 +10,15 @@
 -- your @Setup.hs@:
 --
 -- @
---      import Distribution.Simple
+--      import Distribution.Simple (defaultMainWithHooks, simpleUserHooks, postBuild)
+--      import Distribution.Simple.LocalBuildInfo (buildDir)
 --      import System.Executable.Hash.Internal (maybeInjectExecutableHash)
+--      import System.FilePath ((</>))
 --
 --      main :: IO ()
 --      main = defaultMainWithHooks $ simpleUserHooks
---          { postBuild = \_ _ _ _ ->
---              maybeInjectExecutableHash "dist\/build\/path-to\/your-executable"
+--          { postBuild = \_ _ _ buildInfo ->
+--              maybeInjectExecutableHash (buildDir buildInfo </> "exeName\/exeName")
 --          }
 -- @
 --
diff --git a/System/Executable/Hash/Internal.hs b/System/Executable/Hash/Internal.hs
--- a/System/Executable/Hash/Internal.hs
+++ b/System/Executable/Hash/Internal.hs
@@ -5,6 +5,7 @@
 -- hash.
 module System.Executable.Hash.Internal where
 
+import           Control.Exception (SomeException, handle)
 import           Crypto.Hash.SHA1 (hash)
 import qualified Data.ByteString as BS
 import           Data.FileEmbed (dummySpaceWith, injectWith)
@@ -33,7 +34,7 @@
 -- See the documentation in "System.Executable.Hash" for an example of
 -- how to use this with a cabal @postBuild@ hook
 injectExecutableHash :: FilePath -> IO ()
-injectExecutableHash fp = do
+injectExecutableHash fp = handle addPathToException $ do
     binary <- BS.readFile fp
     let sha1 = hash binary
     case injectWith "executable-hash" sha1 binary of
@@ -41,6 +42,10 @@
         Just binary' -> do
             BS.writeFile fp binary'
             putStrLn $ "Successfully wrote " ++ fp ++ " with injected hash."
+  where
+    addPathToException ex = fail $
+        "While injecting hash into " ++ fp ++
+        ", the following exception occurred: " ++ show (ex :: SomeException)
 
 -- | Injects an executable hash into the specified binary.  If it
 -- doesn't exist, then this prints a message to stdout indicating that
diff --git a/executable-hash.cabal b/executable-hash.cabal
--- a/executable-hash.cabal
+++ b/executable-hash.cabal
@@ -1,5 +1,5 @@
 name:                executable-hash
-version:             0.2.0.0
+version:             0.2.0.1
 synopsis:            Provides the SHA1 hash of the program executable
 description:         See README.md
 homepage:            https://github.com/fpco/executable-hash
