diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.3.2
+
+* Fix a bug that was removing `<` symbols in script tags.
+
 ## 1.3.1
 
 * Inline tagstream-conduit for entity decoding in attribute value bug
diff --git a/html-conduit.cabal b/html-conduit.cabal
--- a/html-conduit.cabal
+++ b/html-conduit.cabal
@@ -1,5 +1,5 @@
 Name:                html-conduit
-Version:             1.3.1
+Version:             1.3.2
 Synopsis:            Parse HTML documents using xml-conduit datatypes.
 Description:         This package uses tagstream-conduit for its parser. It automatically balances mismatched tags, so that there shouldn't be any parse failures. It does not handle a full HTML document rendering, such as adding missing html and head tags. Note that, since version 1.3.1, it uses an inlined copy of tagstream-conduit with entity decoding bugfixes applied.
 Homepage:            https://github.com/snoyberg/xml
diff --git a/src/Text/HTML/TagStream.hs b/src/Text/HTML/TagStream.hs
--- a/src/Text/HTML/TagStream.hs
+++ b/src/Text/HTML/TagStream.hs
@@ -167,7 +167,7 @@
       chunk <- takeTill (== '<')
       let acc' = acc <> B.fromText chunk
           finish = pure [open, Text $ L.toStrict $ B.toLazyText acc', TagClose "script"]
-          hasContent = (string "/script>" *> finish) <|> loop acc'
+          hasContent = (string "/script>" *> finish) <|> loop (acc' <> "<")
       (char '<' *> hasContent) <|> finish
 
 tokens :: Parser [Token]
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -120,9 +120,9 @@
 
     describe "script tags" $ do
       it "ignores funny characters" $
-        let html = "<script>hello > world</script>"
+        let html = "<script>hello <> world</script>"
             doc = X.Document (X.Prologue [] Nothing []) root []
-            root = X.Element "script" Map.empty [X.NodeContent "hello > world"]
+            root = X.Element "script" Map.empty [X.NodeContent "hello <> world"]
          in H.parseLBS html @?= doc
 
       {-
@@ -152,3 +152,25 @@
          in H.parseLBS html @?= doc
 
     prop "parses all random input" $ \strs -> void $ evaluate $!! H.parseSTChunks $ map T.pack strs
+
+    describe "#128 entities cut off" $ do
+      it "reported issue" $ do
+        let html = "<a href=\"https://example.com?a=b&#038;c=d\">link</a>"
+            doc = X.Document (X.Prologue [] Nothing []) root []
+            root = X.Element
+              "a"
+              (Map.singleton "href" "https://example.com?a=b&c=d")
+              [X.NodeContent "link"]
+         in H.parseLBS html @?= doc
+
+      it "from test suite" $ do
+        let html = "<a class=\"u-url\" href=\"https://secure.gravatar.com/avatar/947b5f3f323da0ef785b6f02d9c265d6?s=96&#038;d=blank&#038;r=g\">link</a>"
+            doc = X.Document (X.Prologue [] Nothing []) root []
+            root = X.Element
+              "a"
+              (Map.fromList
+                  [ ("href", "https://secure.gravatar.com/avatar/947b5f3f323da0ef785b6f02d9c265d6?s=96&d=blank&r=g")
+                  , ("class", "u-url")
+                  ])
+              [X.NodeContent "link"]
+         in H.parseLBS html @?= doc
