diff --git a/parser-combinators-tests.cabal b/parser-combinators-tests.cabal
--- a/parser-combinators-tests.cabal
+++ b/parser-combinators-tests.cabal
@@ -1,5 +1,5 @@
 name:                 parser-combinators-tests
-version:              1.1.0
+version:              1.2.0
 cabal-version:        1.18
 tested-with:          GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.5
 license:              BSD3
@@ -27,14 +27,14 @@
   main-is:            Spec.hs
   hs-source-dirs:     tests
   type:               exitcode-stdio-1.0
-  build-depends:      QuickCheck       >= 2.7 && < 2.13
+  build-depends:      QuickCheck       >= 2.7 && < 2.14
                     , base             >= 4.9 && < 5.0
                     , hspec            >= 2.0 && < 3.0
                     , hspec-expectations >= 0.8 && < 0.9
                     , hspec-megaparsec >= 2.0 && < 3.0
                     , megaparsec       >= 7.0 && < 8.0
                     , megaparsec-tests >= 7.0 && < 8.0
-                    , parser-combinators == 1.1.0
+                    , parser-combinators == 1.2.0
   other-modules:      Control.Applicative.CombinatorsSpec
                     , Control.Applicative.PermutationsSpec
                     , Control.Monad.Combinators.ExprSpec
diff --git a/tests/Control/Applicative/CombinatorsSpec.hs b/tests/Control/Applicative/CombinatorsSpec.hs
--- a/tests/Control/Applicative/CombinatorsSpec.hs
+++ b/tests/Control/Applicative/CombinatorsSpec.hs
@@ -129,6 +129,18 @@
              in prs_ p s `shouldParse` (pre, drop 1 post)
     rightOrder (manyTill letterChar (char 'd')) "abcd" "abc"
 
+  describe "manyTill_" $ do
+    it "works" . property $ \a' b' c' -> do
+      let [a,b,c] = getNonNegative <$> [a',b',c']
+          p = (,) <$> manyTill_ letterChar (char 'c') <*> many letterChar
+          s = abcRow a b c
+      if c == 0
+        then prs_ p s `shouldFailWith` err (a + b)
+             (ueof <> etok 'c' <> elabel "letter")
+        else let (pre, post) = break (== 'c') s
+             in prs_ p s `shouldParse` ((pre, 'c'), drop 1 post)
+    rightOrder (fst <$> manyTill_ letterChar (char 'd')) "abcd" "abc"
+
   describe "someTill" $ do
     it "works" . property $ \a' b' c' -> do
       let [a,b,c] = getNonNegative <$> [a',b',c']
@@ -147,6 +159,25 @@
            let (pre, post) = break (== 'c') s
            in prs_ p s `shouldParse` (pre, drop 1 post)
     rightOrder (someTill letterChar (char 'd')) "abcd" "abc"
+
+  describe "someTill_" $ do
+    it "works" . property $ \a' b' c' -> do
+      let [a,b,c] = getNonNegative <$> [a',b',c']
+          p = (,) <$> someTill_ letterChar (char 'c') <*> many letterChar
+          s = abcRow a b c
+      if | null s ->
+           prs_ p s `shouldFailWith` err 0 (ueof <> elabel "letter")
+         | c == 0 ->
+           prs_ p s `shouldFailWith` err (a + b)
+             (ueof <> etok 'c' <> elabel "letter")
+         | s == "c" ->
+           prs_ p s `shouldFailWith` err 1 (ueof <> etok 'c' <> elabel "letter")
+         | head s == 'c' ->
+           prs_ p s `shouldParse` (("c", 'c'), drop 2 s)
+         | otherwise ->
+           let (pre, post) = break (== 'c') s
+           in prs_ p s `shouldParse` ((pre, 'c'), drop 1 post)
+    rightOrder (fst <$> someTill_ letterChar (char 'd')) "abcd" "abc"
 
   describe "option" $
     it "works" . property $ \d a s -> do
diff --git a/tests/Control/Monad/CombinatorsSpec.hs b/tests/Control/Monad/CombinatorsSpec.hs
--- a/tests/Control/Monad/CombinatorsSpec.hs
+++ b/tests/Control/Monad/CombinatorsSpec.hs
@@ -95,6 +95,18 @@
              in prs_ p s `shouldParse` (pre, drop 1 post)
     rightOrder (manyTill letterChar (char 'd')) "abcd" "abc"
 
+  describe "manyTill_" $ do
+    it "works" . property $ \a' b' c' -> do
+      let [a,b,c] = getNonNegative <$> [a',b',c']
+          p = (,) <$> manyTill_ letterChar (char 'c') <*> many letterChar
+          s = abcRow a b c
+      if c == 0
+        then prs_ p s `shouldFailWith` err (a + b)
+             (ueof <> etok 'c' <> elabel "letter")
+        else let (pre, post) = break (== 'c') s
+             in prs_ p s `shouldParse` ((pre, 'c'), drop 1 post)
+    rightOrder (fmap fst . manyTill_ letterChar $ char 'd') "abcd" "abc"
+
   describe "someTill" $ do
     it "works" . property $ \a' b' c' -> do
       let [a,b,c] = getNonNegative <$> [a',b',c']
@@ -113,6 +125,25 @@
            let (pre, post) = break (== 'c') s
            in prs_ p s `shouldParse` (pre, drop 1 post)
     rightOrder (someTill letterChar (char 'd')) "abcd" "abc"
+
+  describe "someTill_" $ do
+    it "works" . property $ \a' b' c' -> do
+      let [a,b,c] = getNonNegative <$> [a',b',c']
+          p = (,) <$> someTill_ letterChar (char 'c') <*> many letterChar
+          s = abcRow a b c
+      if | null s ->
+           prs_ p s `shouldFailWith` err 0 (ueof <> elabel "letter")
+         | c == 0 ->
+           prs_ p s `shouldFailWith` err (a + b)
+             (ueof <> etok 'c' <> elabel "letter")
+         | s == "c" ->
+           prs_ p s `shouldFailWith` err 1 (ueof <> etok 'c' <> elabel "letter")
+         | head s == 'c' ->
+           prs_ p s `shouldParse` (("c", 'c'), drop 2 s)
+         | otherwise ->
+           let (pre, post) = break (== 'c') s
+           in prs_ p s `shouldParse` ((pre, 'c'), drop 1 post)
+    rightOrder (fmap fst . someTill_ letterChar $ char 'd') "abcd" "abc"
 
   describe "sepBy" $ do
     it "works" . property $ \n' c' -> do
