diff --git a/changes.txt b/changes.txt
--- a/changes.txt
+++ b/changes.txt
@@ -1,3 +1,9 @@
+1.2.2.0
+-------
+
+- Released Sat 11 May 2019 05:37:21 CEST
+- Fixed .rst slow parse.
+
 1.2.1.0
 -------
 
diff --git a/issues.txt b/issues.txt
--- a/issues.txt
+++ b/issues.txt
@@ -11,7 +11,7 @@
     77  combine funziona su windows? [test]
  
 src/Lentil/Parse/Run.hs
-   132  Row should be carried on by issues, not be manually set! [refactor]
+   131  Row should be carried on by issues, not be manually set! [refactor]
  
 src/Lentil/Parse/Syntaxes.hs
     25  qptain_nemo fake multiline comments in C (i.e. // and \ at the
diff --git a/lentil.cabal b/lentil.cabal
--- a/lentil.cabal
+++ b/lentil.cabal
@@ -1,5 +1,5 @@
 name:                lentil
-version:             1.2.1.0
+version:             1.2.2.0
 synopsis:            frugal issue tracker
 description:         minumum effort, cohesive issue tracker based on
                      ubiquitous @TODO@s and @FIXME@s conventions.
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
@@ -157,7 +157,7 @@
 rstTodo :: ParSource CommentString
 rstTodo = MultiLine <$> getRow <*>
             (rstTodoIncipit *> fmap modText todoBody)
-          <?> "rst todo directive"
+        <?> "rst todo directive"
   where
         startPara :: ParSource ()
         startPara = eol *> (() <$ satisfy (not . C.isSpace) <|> eof)
@@ -181,15 +181,13 @@
 -- everything else
 rstOther :: ParSource String
 rstOther = someTill anySingle (endp <|> eof)
-           <?> "rst other text"
+         <?> "rst other text"
     where
-          endp = lookAhead . try $ rstTodoIncipit
+          endp = (lookAhead . try) (eol *> rstTodoIncipit) *>
+                 eol *> pure () -- if you succeed, consume newline
 
 rstTodoIncipit :: ParSource ()
-rstTodoIncipit = fmap (unPos . sourceColumn) getSourcePos >>= \c ->
-                 if c == 1
-                   then () <$ string ".. todo::"
-                   else fail "rst todo incipit: not at begin-of-line"
+rstTodoIncipit = () <$ string ".. todo::"
                <?> "rst todo incipit"
 
 ---------------------
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -32,7 +32,7 @@
                                    short 'v'      S.<>
                                    help "show version and copyright info" )
     where
-          versionCopy = "\nlentil - frugal issue tracker, version 1.2.1.0\n\
+          versionCopy = "\nlentil - frugal issue tracker, version 1.2.2.0\n\
                         \(C) 2015-2019 Francesco Ariis - http://www.ariis.it\n\
                         \released under the GNU General Public License v3\n"
 
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
@@ -91,7 +91,7 @@
   describe "rstOther" $ do
     it "parses a reStructuredText+sphinx other-than-todo directive part" $
       sp rstOther "gianni \n.. todo:: prova\n\n  foo" `shouldBe`
-                 Just "gianni \n"
+                 Just "gianni "
 
   describe "rstDocmuentPart" $ do
     it "parses a reStructuredText+sphinx document part: todo" $
