diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,17 @@
 # Changelog for commonmark
 
+## 0.2.4
+
+  * Do not parse hard line breaks in fenced codeblock info (#116,
+    Michael Howell). This change makes commonmark-hs conform to the spec
+    and behave like other implementations when an info string in a code
+    block ends with a backslash.
+
+  * [API change] Commonmark.Inlines now exports `pEscapedSymbol`
+    (#116, Michael Howell).
+
+  * Tokenize combining marks as WordChars not Symbol (#114).
+
 ## 0.2.3
 
   * Re-export Text.Parsec.Pos from Commonmark.Types (Fraser
diff --git a/commonmark.cabal b/commonmark.cabal
--- a/commonmark.cabal
+++ b/commonmark.cabal
@@ -1,6 +1,6 @@
 cabal-version:  2.2
 name:           commonmark
-version:        0.2.3
+version:        0.2.4
 synopsis:       Pure Haskell commonmark parser.
 description:
    This library provides the core data types and functions
diff --git a/src/Commonmark/Blocks.hs b/src/Commonmark/Blocks.hs
--- a/src/Commonmark/Blocks.hs
+++ b/src/Commonmark/Blocks.hs
@@ -52,7 +52,7 @@
 import           Commonmark.Tag
 import           Commonmark.TokParsers
 import           Commonmark.ReferenceMap
-import           Commonmark.Inlines        (pEscaped, pLinkDestination,
+import           Commonmark.Inlines        (pEscapedSymbol, pLinkDestination,
                                             pLinkLabel, pLinkTitle)
 import           Commonmark.Entity         (unEntity)
 import           Commonmark.Tokens
@@ -1042,7 +1042,7 @@
              guard $ fencelength >= 3
              skipWhile (hasType Spaces)
              let infoTok = noneOfToks (LineEnd : [Symbol '`' | c == '`'])
-             info <- T.strip . unEntity <$> many (pEscaped <|> infoTok)
+             info <- T.strip . unEntity <$> many (pEscapedSymbol <|> infoTok)
              lookAhead $ void lineEnd <|> eof
 
              let infotoks = tokenize "info string" info
diff --git a/src/Commonmark/Inlines.hs b/src/Commonmark/Inlines.hs
--- a/src/Commonmark/Inlines.hs
+++ b/src/Commonmark/Inlines.hs
@@ -24,6 +24,7 @@
   , pLinkDestination
   , pLinkTitle
   , pEscaped
+  , pEscapedSymbol
   , processEmphasis
   , processBrackets
   , pBacktickSpan
@@ -936,6 +937,12 @@
 pEscaped = do
   bs <- symbol '\\'
   option bs $ satisfyTok asciiSymbol <|> lineEnd
+
+-- parses backslash + punctuation, but not backslashed newline
+pEscapedSymbol :: Monad m => ParsecT [Tok] s m Tok
+pEscapedSymbol = do
+  bs <- symbol '\\'
+  option bs $ satisfyTok asciiSymbol
 
 asciiSymbol :: Tok -> Bool
 asciiSymbol (Tok (Symbol c) _ _) = isAscii c
diff --git a/src/Commonmark/Tokens.hs b/src/Commonmark/Tokens.hs
--- a/src/Commonmark/Tokens.hs
+++ b/src/Commonmark/Tokens.hs
@@ -10,7 +10,7 @@
   , untokenize
   ) where
 
-import           Unicode.Char    (isAlphaNum)
+import           Unicode.Char    (isAlphaNum, isMark)
 import           Unicode.Char.General.Compat  (isSpace)
 import           Data.Text       (Text)
 import qualified Data.Text       as T
@@ -42,8 +42,10 @@
     -- everything else gets in a token by itself.
     f '\r' '\n' = True
     f ' ' ' '   = True
-    f x   y     = isAlphaNum x && isAlphaNum y
+    f x   y     = isWordChar x && isWordChar y
 
+    isWordChar c  = isAlphaNum c || isMark c
+
     go !_pos [] = []
     go !pos (!t:ts) = -- note that t:ts are guaranteed to be nonempty
       case T.head t of
@@ -57,7 +59,7 @@
          '\n' -> Tok LineEnd pos t :
                  go (incSourceLine (setSourceColumn pos 1) 1) ts
          thead
-           | isAlphaNum thead ->
+           | isWordChar thead ->
                  Tok WordChars pos t :
                  go (incSourceColumn pos (T.length t)) ts
            | isSpace thead ->
diff --git a/test/regression.md b/test/regression.md
--- a/test/regression.md
+++ b/test/regression.md
@@ -203,3 +203,19 @@
 <p><a href="http://www.example.com/">test </a>
 <a href="http://www.example.com/"> test</a></p>
 ````````````````````````````````
+
+Issue #114.
+```````````````````````````````` example
+*.*̀.
+.
+<p>*.*̀.</p>
+````````````````````````````````
+
+Issue #115.
+```````````````````````````````` example
+~~~\
+x
+.
+<pre><code class="language-\">x
+</code></pre>
+````````````````````````````````
