diff --git a/changes.txt b/changes.txt
--- a/changes.txt
+++ b/changes.txt
@@ -1,3 +1,9 @@
+0.1.1.2
+-------
+
+- Released Fri 12 Jun 2015 21:21:11 CEST
+- fixed broken parse on empty file (reported by Simon Michael)
+
 0.1.1.1
 -------
 
@@ -16,5 +22,5 @@
 -------
 
 - Released Tue 09 Jun 2015 21:05:33 CEST
-- Added changes.txt as changeloc
+- Added changes.txt as changelog
 
diff --git a/lentil.cabal b/lentil.cabal
--- a/lentil.cabal
+++ b/lentil.cabal
@@ -1,5 +1,5 @@
 name:                lentil
-version:             0.1.1.1
+version:             0.1.1.2
 synopsis:            frugal issue tracker
 description:         minumum effort, cohesive issue tracker based on
                      ubiquitous @TODO@s and @FIXME@s conventions.
diff --git a/src/Lentil.hs b/src/Lentil.hs
--- a/src/Lentil.hs
+++ b/src/Lentil.hs
@@ -28,7 +28,7 @@
                                    short 'v'      <>
                                    help "show version and copyright info" )
     where
-          versionCopy = "lentil - a frugal issue tracker, version 0.1.1.1\n\
+          versionCopy = "lentil - a frugal issue tracker, version 0.1.1.2\n\
                         \(C) 2015 Francesco Ariis - http://www.ariis.it\n\
                         \released under the GNU General Public License 3"
 
diff --git a/src/Lentil/Parse/Source.hs b/src/Lentil/Parse/Source.hs
--- a/src/Lentil/Parse/Source.hs
+++ b/src/Lentil/Parse/Source.hs
@@ -105,7 +105,8 @@
     where onlynl a = fmap (filter (== '\n')) a
 
 sources :: ParSyntax -> ParSource String
-sources ps = fmap concat $ many1 (source ps)
+sources ps =   fmap concat (many1 (source ps))
+           <|> ("" <$ eof)
 
 
 --------------
diff --git a/src/Lentil/Print.hs b/src/Lentil/Print.hs
--- a/src/Lentil/Print.hs
+++ b/src/Lentil/Print.hs
@@ -40,6 +40,7 @@
 -- PRETTY PRINT --
 ------------------
 
+-- TODO: colours are bad for unix philosophy, remove them? [design]
 data TagCol = Red | Blue deriving (Eq)
 ppTag :: TagCol -> Tag -> Doc
 ppTag c t = col (char openDel) <> string (tagString t) <>
diff --git a/test/Lentil/Parse/SourceSpec.hs b/test/Lentil/Parse/SourceSpec.hs
--- a/test/Lentil/Parse/SourceSpec.hs
+++ b/test/Lentil/Parse/SourceSpec.hs
@@ -29,9 +29,9 @@
       sp (manyTill1 anyChar newline) "foo\n" `shouldBe`
       sp (manyTill anyChar newline) "foo\n"
     it "fails on empty string (while manyTill does not)" $
-      sp (manyTill1 anyChar newline) "\n" `shouldBe` Nothing
-    it "where manyTill (without one) returns \"\"" $
-      sp (manyTill anyChar newline) "\n" `shouldBe` Just ""
+      (sp (manyTill1 anyChar newline) "\n",
+       sp (manyTill  anyChar newline) "\n") `shouldBe` (Nothing,
+                                                        Just "")
 
   describe "lineComment" $ do
     it "parses a line comment" $
@@ -87,6 +87,10 @@
       sp (source hss) "\'h\'" `shouldBe`  Just ""
     it "parses one piece of source (program instructions)" $
       sp (source hss) "prime'" `shouldBe`  Just ""
+
+  describe "sources" $ do
+    it "should not choke on en empty file" $
+      sp (sources hss) "" `shouldBe`  Just ""
 
   describe "commentParser" $ do
     beforeAll (readFile "test/test-files/lang-comm/out.blocks") $ do
