diff --git a/CHANGES.txt b/CHANGES.txt
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,7 @@
 Changelog for TagSoup
 
+0.14.4, released 2018-02-26
+    #71, fix up source positions on bogus comments
 0.14.3, released 2018-01-21
     #70, fix up source positions on comments
 0.14.2, released 2017-11-30
diff --git a/src/Text/HTML/TagSoup/Specification.hs b/src/Text/HTML/TagSoup/Specification.hs
--- a/src/Text/HTML/TagSoup/Specification.hs
+++ b/src/Text/HTML/TagSoup/Specification.hs
@@ -63,9 +63,9 @@
 
 
 -- seen "<?", emitted []
-neilXmlTagOpen S{..} = pos $ case hd of
+neilXmlTagOpen S{..} = case hd of
     _ | isAlpha hd -> Tag & '?' & hd & tagName TypeXml tl
-    _ -> errSeen "<?" & '<' & '?' & dat s
+    _ -> pos $ errSeen "<?" & '<' & '?' & dat s
 
 -- seen "?", expecting ">"
 neilXmlTagClose S{..} = pos $ case hd of
diff --git a/tagsoup.cabal b/tagsoup.cabal
--- a/tagsoup.cabal
+++ b/tagsoup.cabal
@@ -1,6 +1,6 @@
 cabal-version:  >= 1.18
 name:           tagsoup
-version:        0.14.3
+version:        0.14.4
 copyright:      Neil Mitchell 2006-2018
 author:         Neil Mitchell <ndmitchell@gmail.com>
 maintainer:     Neil Mitchell <ndmitchell@gmail.com>
diff --git a/test/TagSoup/Test.hs b/test/TagSoup/Test.hs
--- a/test/TagSoup/Test.hs
+++ b/test/TagSoup/Test.hs
@@ -249,6 +249,7 @@
     p "<a>&1" === [TagPosition 1 1,TagOpen "a" [],TagPosition 1 4,TagText "&1"]
     p "<a>&amp;" === [TagPosition 1 1,TagOpen "a" [],TagPosition 1 4,TagText "&"]
     p "<div><!--foo-->bar</div>" === [TagPosition 1 1,TagOpen "div" [],TagPosition 1 6,TagComment "foo",TagPosition 1 16,TagText "bar",TagPosition 1 19,TagClose "div"]
+    p "<div><?foo</div>" === [TagPosition 1 1,TagOpen "div" [],TagPosition 1 6,TagOpen "?foo<" [("div","")]]
     p "<![CDATA[x]]>" === [TagPosition 1 10,TagText "x"]
     p "<!html>" === [TagPosition 1 1,TagOpen "!html" []]
 
