diff --git a/src/SHC/Utils.hs b/src/SHC/Utils.hs
--- a/src/SHC/Utils.hs
+++ b/src/SHC/Utils.hs
@@ -14,9 +14,11 @@
 import           Control.Monad       (guard)
 import           Data.Function       (on)
 import           Data.List
+import           Data.Version
 #if __GLASGOW_HASKELL__ < 710
 import           Control.Applicative ((<$>), (<*>))
 #endif
+import           Text.ParserCombinators.ReadP
 import           System.FilePath     ((</>))
 import           System.Process      (readProcess)
 
@@ -54,7 +56,17 @@
 
 -- | Verify that the required Stack is present.
 checkStackVersion :: IO Bool
-checkStackVersion = ("0.1.7.0" <=) <$> stack ["--numeric-version"]
+checkStackVersion = do
+    let lowerBound = Version [0,1,7,0] []
+    stackVersion <- stack ["--numeric-version"]
+    return $ verifyVersion stackVersion lowerBound
+
+-- | Check whether a string is a version and if it is
+-- greater than or equal to a specified version.
+verifyVersion :: String -> Version -> Bool
+verifyVersion ver lowerBound =
+        let parses = readP_to_S parseVersion ver
+        in  not (null parses) && (lowerBound <= fst (last parses))
 
 -- | Return the HPC data directory, given the package name.
 getHpcDir :: String -> IO FilePath
diff --git a/stack-hpc-coveralls.cabal b/stack-hpc-coveralls.cabal
--- a/stack-hpc-coveralls.cabal
+++ b/stack-hpc-coveralls.cabal
@@ -1,5 +1,5 @@
 name:                stack-hpc-coveralls
-version:             0.0.2.0
+version:             0.0.3.0
 synopsis:            Initial project template from stack
 description:         Please see README.md
 homepage:            http://github.com/rubik/stack-hpc-coveralls
diff --git a/test/SHCSpec.hs b/test/SHCSpec.hs
--- a/test/SHCSpec.hs
+++ b/test/SHCSpec.hs
@@ -10,6 +10,7 @@
 import           Data.Aeson
 import qualified Data.Map.Strict          as M
 import           Data.Time.Clock          (getCurrentTime)
+import           Data.Version
 import           System.IO.Unsafe         (unsafePerformIO)
 import           Test.Hspec
 import           Test.Hspec.Contrib.HUnit
@@ -89,6 +90,11 @@
         it "toLix" $
             toLix 4 covEntries `shouldBe` [Partial, Full, Irrelevant, None]
     describe "SHC.Utils" $ do
+        it "verifyVersion" $
+            let ver = Version [0,1,7,0] []
+            in  (not (verifyVersion "0.1.6.0" ver) &&
+                 verifyVersion "0.1.7.0" ver &&
+                 verifyVersion "1.100.4.56" ver) `shouldBe` True
         it "fst3" $ fst3 (1, 2, 3) `shouldBe` 1
         it "snd3" $ snd3 (1, 2, 3) `shouldBe` 2
         it "trd3" $ trd3 (1, 2, 3) `shouldBe` 3
