diff --git a/optparse-simple.cabal b/optparse-simple.cabal
--- a/optparse-simple.cabal
+++ b/optparse-simple.cabal
@@ -1,5 +1,5 @@
 name:                optparse-simple
-version:             0.0.1
+version:             0.0.2
 synopsis:            Simple interface to optparse-applicative
 description:         Simple interface to optparse-applicative
 license:             BSD3
diff --git a/src/Options/Applicative/Simple.hs b/src/Options/Applicative/Simple.hs
--- a/src/Options/Applicative/Simple.hs
+++ b/src/Options/Applicative/Simple.hs
@@ -64,9 +64,9 @@
   -> IO (a,b)
 simpleOptions versionString h pd globalParser commandParser =
   do args <- getArgs
-     case getParseResult (execParserPure (prefs idm) parser args) of
-       Nothing -> withArgs ["--help"] (execParser parser)
-       Just ab -> return ab
+     case execParserPure (prefs idm) parser args of
+       Failure _ | null args -> withArgs ["--help"] (execParser parser)
+       parseResult -> handleParseResult parseResult
   where parser = info (helpOption <*> versionOption <*> config) desc
         desc = fullDesc <> header h <> progDesc pd
         helpOption =
