diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+## Version 0.8.1 (5 May 2014)
+
+- Fixed bugs
+    * \#74 - Missing newline
+
 ## Version 0.8.0.1 (19 Mar 2014)
 
 - Fixed bugs
diff --git a/Options/Applicative/Extra.hs b/Options/Applicative/Extra.hs
--- a/Options/Applicative/Extra.hs
+++ b/Options/Applicative/Extra.hs
@@ -132,17 +132,13 @@
                 . renderPretty 1.0 (prefColumns pprefs)
                 . helpText
 
-    show_full_help = case msg of
-      ShowHelpText -> True
-      _            -> prefShowHelpOnError pprefs
-
     usage_help progn names i = case msg of
       InfoMsg _ -> mempty
       _         -> usageHelp $ vcatChunks
         [ pure . parserUsage pprefs (infoParser i) . unwords $ progn : names
         , fmap (indent 2) . infoProgDesc $ i ]
 
-    error_help = headerHelp $ case msg of
+    error_help = errorHelp $ case msg of
       ShowHelpText -> mempty
       ErrorMsg m   -> stringChunk m
       InfoMsg  m   -> stringChunk m
@@ -152,7 +148,11 @@
       | show_full_help
       = mconcat [h, f, parserHelp pprefs (infoParser i)]
       | otherwise
-      = h
+      = mempty
       where
         h = headerHelp (infoHeader i)
         f = footerHelp (infoFooter i)
+
+    show_full_help = case msg of
+      ShowHelpText -> True
+      _            -> prefShowHelpOnError pprefs
diff --git a/Options/Applicative/Help/Core.hs b/Options/Applicative/Help/Core.hs
--- a/Options/Applicative/Help/Core.hs
+++ b/Options/Applicative/Help/Core.hs
@@ -4,6 +4,7 @@
   fullDesc,
   ParserHelp(..),
   helpText,
+  errorHelp,
   headerHelp,
   usageHelp,
   bodyHelp,
@@ -110,31 +111,36 @@
       , descSurround = False }
 
 data ParserHelp = ParserHelp
-  { helpHeader :: Chunk Doc
+  { helpError :: Chunk Doc
+  , helpHeader :: Chunk Doc
   , helpUsage :: Chunk Doc
   , helpBody :: Chunk Doc
   , helpFooter :: Chunk Doc }
 
 instance Monoid ParserHelp where
-  mempty = ParserHelp mempty mempty mempty mempty
-  mappend (ParserHelp h1 u1 b1 f1) (ParserHelp h2 u2 b2 f2)
-    = ParserHelp (mappend h1 h2) (mappend u1 u2)
-                 (mappend b1 b2) (mappend f1 f2)
+  mempty = ParserHelp mempty mempty mempty mempty mempty
+  mappend (ParserHelp e1 h1 u1 b1 f1) (ParserHelp e2 h2 u2 b2 f2)
+    = ParserHelp (mappend e1 e2) (mappend h1 h2)
+                 (mappend u1 u2) (mappend b1 b2)
+                 (mappend f1 f2)
 
+errorHelp :: Chunk Doc -> ParserHelp
+errorHelp chunk = ParserHelp chunk mempty mempty mempty mempty
+
 headerHelp :: Chunk Doc -> ParserHelp
-headerHelp chunk = ParserHelp chunk mempty mempty mempty
+headerHelp chunk = ParserHelp mempty chunk mempty mempty mempty
 
 usageHelp :: Chunk Doc -> ParserHelp
-usageHelp chunk = ParserHelp mempty chunk mempty mempty
+usageHelp chunk = ParserHelp mempty mempty chunk mempty mempty
 
 bodyHelp :: Chunk Doc -> ParserHelp
-bodyHelp chunk = ParserHelp mempty mempty chunk mempty
+bodyHelp chunk = ParserHelp mempty mempty mempty chunk mempty
 
 footerHelp :: Chunk Doc -> ParserHelp
-footerHelp chunk = ParserHelp mempty mempty mempty chunk
+footerHelp chunk = ParserHelp mempty mempty mempty mempty chunk
 
 helpText :: ParserHelp -> Doc
-helpText (ParserHelp h u b f) = extractChunk . vsepChunks $ [h, u, b, f]
+helpText (ParserHelp e h u b f) = extractChunk . vsepChunks $ [e, h, u, b, f]
 
 -- | Generate the help text for a program.
 parserHelp :: ParserPrefs -> Parser a -> ParserHelp
diff --git a/optparse-applicative.cabal b/optparse-applicative.cabal
--- a/optparse-applicative.cabal
+++ b/optparse-applicative.cabal
@@ -1,5 +1,5 @@
 name:                optparse-applicative
-version:             0.8.0.1
+version:             0.8.1
 synopsis:            Utilities and combinators for parsing command line options
 description:
     Here is a simple example of an applicative option parser:
@@ -79,6 +79,8 @@
                      tests/alt.err.txt
                      tests/cabal.err.txt
                      tests/commands.err.txt
+                     tests/commands_header.err.txt
+                     tests/commands_header_full.err.txt
                      tests/hello.err.txt
                      tests/formatting.err.txt
                      tests/nested.err.txt
@@ -117,7 +119,7 @@
   build-depends:       base == 4.*,
                        HUnit == 1.2.*,
                        optparse-applicative,
-                       QuickCheck == 2.6.*,
+                       QuickCheck >= 2.6 && < 2.8,
                        test-framework >= 0.6 && < 0.9,
                        test-framework-hunit >= 0.2 && < 0.4,
                        test-framework-quickcheck2 == 0.3.*,
diff --git a/tests/Tests.hs b/tests/Tests.hs
--- a/tests/Tests.hs
+++ b/tests/Tests.hs
@@ -72,6 +72,14 @@
 case_modes :: Assertion
 case_modes = checkHelpText "commands" Commands.opts ["--help"]
 
+case_cmd_header :: Assertion
+case_cmd_header = do
+  let i = info (helper <*> Commands.sample) (header "foo")
+  checkHelpTextWith (ExitFailure 1) (prefs idm)
+                    "commands_header" i ["-zzz"]
+  checkHelpTextWith (ExitFailure 1) (prefs showHelpOnError)
+                    "commands_header_full" i ["-zzz"]
+
 case_cabal_conf :: Assertion
 case_cabal_conf = checkHelpText "cabal" Cabal.pinfo ["configure", "--help"]
 
diff --git a/tests/commands_header.err.txt b/tests/commands_header.err.txt
new file mode 100644
--- /dev/null
+++ b/tests/commands_header.err.txt
@@ -0,0 +1,3 @@
+Invalid option `-zzz'
+
+Usage: commands_header COMMAND
diff --git a/tests/commands_header_full.err.txt b/tests/commands_header_full.err.txt
new file mode 100644
--- /dev/null
+++ b/tests/commands_header_full.err.txt
@@ -0,0 +1,12 @@
+Invalid option `-zzz'
+
+foo
+
+Usage: commands_header_full COMMAND
+
+Available options:
+  -h,--help                Show this help text
+
+Available commands:
+  hello                    Print greeting
+  goodbye                  Say goodbye
