diff --git a/Text/Hamlet/Parse.hs b/Text/Hamlet/Parse.hs
--- a/Text/Hamlet/Parse.hs
+++ b/Text/Hamlet/Parse.hs
@@ -315,7 +315,9 @@
 parseDoc :: HamletSettings -> String -> Result [Doc]
 parseDoc set s = do
     ls <- parseLines set s
-    let ns = nestLines ls
+    let notEmpty (_, LineContent []) = False
+        notEmpty _ = True
+    let ns = nestLines $ filter notEmpty ls
     ds <- nestToDoc set ns
     return $ compressDoc ds
 
diff --git a/hamlet.cabal b/hamlet.cabal
--- a/hamlet.cabal
+++ b/hamlet.cabal
@@ -1,5 +1,5 @@
 name:            hamlet
-version:         0.5.0
+version:         0.5.0.1
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
diff --git a/runtests.hs b/runtests.hs
--- a/runtests.hs
+++ b/runtests.hs
@@ -77,6 +77,7 @@
     , testCase "hamletFileDebug double foralls" caseDoubleForalls
     , testCase "cassius pseudo-class" casePseudo
     , testCase "different binding names" caseDiffBindNames
+    , testCase "blank line" caseBlankLine
     ]
 
 data Url = Home | Sub SubUrl
@@ -693,4 +694,18 @@
 caseDiffBindNames :: Assertion
 caseDiffBindNames = do
     let list = words "1 2 3"
-    helper "123123" $(hamletFileDebug "external-debug3.hamlet")
+    -- FIXME helper "123123" $(hamletFileDebug "external-debug3.hamlet")
+    error "test has been disabled"
+
+caseBlankLine :: Assertion
+caseBlankLine = do
+    helper "<p>foo</p>" [$hamlet|
+%p
+
+    foo
+|]
+    celper "foo{bar:baz}" [$cassius|
+foo
+
+    bar: baz
+|]
