diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+## 0.3.4.0
+
+-   Updates for pandoc 2.4 and GHC 8.6
+-   Fixed link in documentation (Salim B)
+-   Fixed demo.md link in README
+-   Corrected minor mistakes in the readme. (Wandmalfarbe)
+
 ## 0.3.3.0
 
 -   Hide flaky tests behind a flag
diff --git a/docs/index.md b/docs/index.md
--- a/docs/index.md
+++ b/docs/index.md
@@ -661,7 +661,7 @@
 This will be added *before* any customization applied by
 pandoc-crossref. For a complete list of what is added to template,
 consult
-[ModifyMeta.hs](https://github.com/lierdakil/pandoc-crossref/blob/master/src/Util/ModifyMeta.hs).
+[ModifyMeta.hs](https://github.com/lierdakil/pandoc-crossref/blob/master/lib/Text/Pandoc/CrossRef/Util/ModifyMeta.hs).
 
 ## Templates
 
diff --git a/lib/Text/Pandoc/CrossRef/Util/Meta.hs b/lib/Text/Pandoc/CrossRef/Util/Meta.hs
--- a/lib/Text/Pandoc/CrossRef/Util/Meta.hs
+++ b/lib/Text/Pandoc/CrossRef/Util/Meta.hs
@@ -36,7 +36,7 @@
 import Text.Pandoc.Builder
 import Data.Default
 import Text.Pandoc.Walk
-import Text.Pandoc.Shared hiding (capitalize)
+import Text.Pandoc.Shared hiding (capitalize, toString)
 
 getMetaList :: (Default a) => (MetaValue -> a) -> String -> Meta -> Int -> a
 getMetaList f name meta i = maybe def f $ lookupMeta name meta >>= getList i
diff --git a/pandoc-crossref.cabal b/pandoc-crossref.cabal
--- a/pandoc-crossref.cabal
+++ b/pandoc-crossref.cabal
@@ -1,11 +1,13 @@
--- This file has been generated from package.yaml by hpack version 0.28.2.
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.31.0.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 1d7645597fa7a4589e37c71e3fee17d3eac5b57087d212f56fb16218fd9c3803
+-- hash: 2cd0206988abd6c996a007085e3e239d62131d1ab25f6075cf86d49407c2c5e9
 
 name:           pandoc-crossref
-version:        0.3.3.0
+version:        0.3.4.0
 synopsis:       Pandoc filter for cross-references
 description:    pandoc-crossref is a pandoc filter for numbering figures, equations, tables and cross-references to them.
 category:       Text
@@ -16,11 +18,10 @@
 license:        GPL-2
 license-file:   LICENSE
 build-type:     Simple
-cabal-version:  >= 1.10
 extra-source-files:
-    CHANGELOG.md
     test/demo-chapters.inc
     test/demo.inc
+    CHANGELOG.md
 data-files:
     docs/demo/demo.md
     docs/index.md
@@ -95,7 +96,7 @@
   ghc-options: -Wall
   build-depends:
       base >=4.11 && <5
-    , containers >=0.1 && <0.6
+    , containers >=0.1 && <0.7
     , data-accessor >=0.2.2.6 && <0.3.0.0
     , data-accessor-template >=0.2.1.12 && <0.3.0.0
     , data-accessor-transformers >=0.2.1.6 && <0.3.0.0
@@ -103,8 +104,8 @@
     , directory >=1 && <1.4
     , filepath >=1.1 && <1.5
     , mtl >=1.1 && <2.3
-    , pandoc >=2.3 && <2.4
-    , pandoc-types ==1.17.*
+    , pandoc >=2.3 && <2.5
+    , pandoc-types >=1.17.5.1 && <1.18
     , roman-numerals ==0.5.*
     , syb >=0.4 && <0.8
     , template-haskell >=2.7.0.0 && <3.0.0.0
@@ -122,7 +123,7 @@
   ghc-options: -Wall -threaded
   build-depends:
       base >=4.11 && <5
-    , containers >=0.1 && <0.6
+    , containers >=0.1 && <0.7
     , data-accessor >=0.2.2.6 && <0.3.0.0
     , data-accessor-template >=0.2.1.12 && <0.3.0.0
     , data-accessor-transformers >=0.2.1.6 && <0.3.0.0
@@ -134,9 +135,9 @@
     , mtl >=1.1 && <2.3
     , open-browser >=0.2 && <0.3
     , optparse-applicative >=0.13 && <0.15
-    , pandoc >=2.3 && <2.4
+    , pandoc >=2.3 && <2.5
     , pandoc-crossref
-    , pandoc-types ==1.17.*
+    , pandoc-types >=1.17.5.1 && <1.18
     , roman-numerals ==0.5.*
     , syb >=0.4 && <0.8
     , template-haskell >=2.7.0.0 && <3.0.0.0
@@ -153,7 +154,7 @@
   ghc-options: -Wall -fno-warn-unused-do-bind -threaded
   build-depends:
       base >=4.11 && <5
-    , containers >=0.1 && <0.6
+    , containers >=0.1 && <0.7
     , data-accessor >=0.2.2.6 && <0.3.0.0
     , data-accessor-template >=0.2.1.12 && <0.3.0.0
     , data-accessor-transformers >=0.2.1.6 && <0.3.0.0
@@ -162,9 +163,9 @@
     , filepath >=1.1 && <1.5
     , hspec >=2.4.4 && <3
     , mtl >=1.1 && <2.3
-    , pandoc >=2.3 && <2.4
+    , pandoc >=2.3 && <2.5
     , pandoc-crossref
-    , pandoc-types ==1.17.*
+    , pandoc-types >=1.17.5.1 && <1.18
     , roman-numerals ==0.5.*
     , syb >=0.4 && <0.8
     , template-haskell >=2.7.0.0 && <3.0.0.0
@@ -202,7 +203,7 @@
   ghc-options: -Wall -fno-warn-unused-do-bind -threaded
   build-depends:
       base >=4.11 && <5
-    , containers >=0.1 && <0.6
+    , containers >=0.1 && <0.7
     , data-accessor >=0.2.2.6 && <0.3.0.0
     , data-accessor-template >=0.2.1.12 && <0.3.0.0
     , data-accessor-transformers >=0.2.1.6 && <0.3.0.0
@@ -211,8 +212,8 @@
     , filepath >=1.1 && <1.5
     , hspec >=2.4.4 && <3
     , mtl >=1.1 && <2.3
-    , pandoc >=2.3 && <2.4
-    , pandoc-types ==1.17.*
+    , pandoc >=2.3 && <2.5
+    , pandoc-types >=1.17.5.1 && <1.18
     , roman-numerals ==0.5.*
     , syb >=0.4 && <0.8
     , template-haskell >=2.7.0.0 && <3.0.0.0
diff --git a/test/demo-chapters.inc b/test/demo-chapters.inc
--- a/test/demo-chapters.inc
+++ b/test/demo-chapters.inc
@@ -38,7 +38,7 @@
    ,[[Plain [Str "Content",Space,Str "Cell"]]
     ,[Plain [Str "Content",Space,Str "Cell"]]]]
   ,Header 1 ("sec:chapter-4.-code-blocks",[],[]) [Str "Chapter",Space,Str "4.",Space,Str "Code",Space,Str "blocks"]
-  ,Para [Str "There",Space,Str "are",Space,Str "a",Space,Str "couple",Space,Str "options",Space,Str "for",Space,Str "code",Space,Str "block",Space,Str "labels.",Space,Str "Those",Space,Str "work",Space,Str "only",Space,Str "if",Space,Str "code",Space,Str "block",Space,Str "id",Space,Str "starts",Space,Str "with",Space,Code ("",[],[]) "lst:",Str ",",Space,Str "e.g.",Space,Code ("",[],[]) "{#lst:label}"]
+  ,Para [Str "There",Space,Str "are",Space,Str "a",Space,Str "couple",Space,Str "options",Space,Str "for",Space,Str "code",Space,Str "block",Space,Str "labels.",Space,Str "Those",Space,Str "work",Space,Str "only",Space,Str "if",Space,Str "code",Space,Str "block",Space,Str "id",Space,Str "starts",Space,Str "with",Space,Code ("",[],[]) "lst:",Str ",",Space,Str "e.g.\160",Code ("",[],[]) "{#lst:label}"]
   ,Header 2 ("sec:caption-attr",[],[]) [Code ("",[],[]) "caption",Space,Str "attribute"]
   ,Para [Code ("",[],[]) "caption",Space,Str "attribute",Space,Str "will",Space,Str "be",Space,Str "treated",Space,Str "as",Space,Str "code",Space,Str "block",Space,Str "caption.",Space,Str "If",Space,Str "code",Space,Str "block",Space,Str "has",Space,Str "both",Space,Str "id",Space,Str "and",Space,Code ("",[],[]) "caption",Space,Str "attributes,",Space,Str "it",Space,Str "will",Space,Str "be",Space,Str "treated",Space,Str "as",Space,Str "numbered",Space,Str "code",Space,Str "block."]
   ,Div ("lst:captionAttr",["listing","haskell"],[])
@@ -56,7 +56,7 @@
    [Para [Str "Listing",Space,Str "4.3:",Space,Str "Listing",Space,Str "caption"]
    ,CodeBlock ("",["haskell"],[]) "main :: IO ()\nmain = putStrLn \"Hello World!\""]
   ,Header 1 ("sec:unnumbered-chapter.",["unnumbered"],[]) [Str "Unnumbered",Space,Str "chapter."]
-  ,Para [Str "This",Space,Str "chapter",Space,Str "doesn\8217t",Space,Str "change",Space,Str "chapter",Space,Str "prefix",Space,Str "of",Space,Str "referenced",Space,Str "elements,",Space,Str "instead",Space,Str "keeping",Space,Str "number",Space,Str "of",Space,Str "previous",Space,Str "chapter,",Space,Str "e.g.",SoftBreak,Span ("eq:eqn2",[],[]) [Math DisplayMath " S(x) = \\int_{x_1}^{x_2} a x+b \\  \\mathrm{d}x \\qquad(4.1)"]]
+  ,Para [Str "This",Space,Str "chapter",Space,Str "doesn\8217t",Space,Str "change",Space,Str "chapter",Space,Str "prefix",Space,Str "of",Space,Str "referenced",Space,Str "elements,",Space,Str "instead",Space,Str "keeping",Space,Str "number",Space,Str "of",Space,Str "previous",Space,Str "chapter,",SoftBreak,Str "e.g.\160",Span ("eq:eqn2",[],[]) [Math DisplayMath " S(x) = \\int_{x_1}^{x_2} a x+b \\  \\mathrm{d}x \\qquad(4.1)"]]
   ,Header 1 ("sec:chapter-5.-reference-lists",[],[]) [Str "Chapter",Space,Str "5.",Space,Str "Reference",Space,Str "lists"]
   ,Para [Str "It\8217s",Space,Str "also",Space,Str "possible",Space,Str "to",Space,Str "show",Space,Str "lists",Space,Str "of",Space,Str "figures",Space,Str "and",Space,Str "tables,",Space,Str "like",Space,Str "this:"]
   ,Header 2 ("list-of-figures",[],[]) [Str "List",Space,Str "of",Space,Str "Figures"]
diff --git a/test/demo.inc b/test/demo.inc
--- a/test/demo.inc
+++ b/test/demo.inc
@@ -38,7 +38,7 @@
    ,[[Plain [Str "Content",Space,Str "Cell"]]
     ,[Plain [Str "Content",Space,Str "Cell"]]]]
   ,Header 1 ("sec:chapter-4.-code-blocks",[],[]) [Str "Chapter",Space,Str "4.",Space,Str "Code",Space,Str "blocks"]
-  ,Para [Str "There",Space,Str "are",Space,Str "a",Space,Str "couple",Space,Str "options",Space,Str "for",Space,Str "code",Space,Str "block",Space,Str "labels.",Space,Str "Those",Space,Str "work",Space,Str "only",Space,Str "if",Space,Str "code",Space,Str "block",Space,Str "id",Space,Str "starts",Space,Str "with",Space,Code ("",[],[]) "lst:",Str ",",Space,Str "e.g.",Space,Code ("",[],[]) "{#lst:label}"]
+  ,Para [Str "There",Space,Str "are",Space,Str "a",Space,Str "couple",Space,Str "options",Space,Str "for",Space,Str "code",Space,Str "block",Space,Str "labels.",Space,Str "Those",Space,Str "work",Space,Str "only",Space,Str "if",Space,Str "code",Space,Str "block",Space,Str "id",Space,Str "starts",Space,Str "with",Space,Code ("",[],[]) "lst:",Str ",",Space,Str "e.g.\160",Code ("",[],[]) "{#lst:label}"]
   ,Header 2 ("sec:caption-attr",[],[]) [Code ("",[],[]) "caption",Space,Str "attribute"]
   ,Para [Code ("",[],[]) "caption",Space,Str "attribute",Space,Str "will",Space,Str "be",Space,Str "treated",Space,Str "as",Space,Str "code",Space,Str "block",Space,Str "caption.",Space,Str "If",Space,Str "code",Space,Str "block",Space,Str "has",Space,Str "both",Space,Str "id",Space,Str "and",Space,Code ("",[],[]) "caption",Space,Str "attributes,",Space,Str "it",Space,Str "will",Space,Str "be",Space,Str "treated",Space,Str "as",Space,Str "numbered",Space,Str "code",Space,Str "block."]
   ,Div ("lst:captionAttr",["listing","haskell"],[])
@@ -56,7 +56,7 @@
    [Para [Str "Listing",Space,Str "3:",Space,Str "Listing",Space,Str "caption"]
    ,CodeBlock ("",["haskell"],[]) "main :: IO ()\nmain = putStrLn \"Hello World!\""]
   ,Header 1 ("sec:unnumbered-chapter.",["unnumbered"],[]) [Str "Unnumbered",Space,Str "chapter."]
-  ,Para [Str "This",Space,Str "chapter",Space,Str "doesn\8217t",Space,Str "change",Space,Str "chapter",Space,Str "prefix",Space,Str "of",Space,Str "referenced",Space,Str "elements,",Space,Str "instead",Space,Str "keeping",Space,Str "number",Space,Str "of",Space,Str "previous",Space,Str "chapter,",Space,Str "e.g.",SoftBreak,Span ("eq:eqn2",[],[]) [Math DisplayMath " S(x) = \\int_{x_1}^{x_2} a x+b \\  \\mathrm{d}x \\qquad(3)"]]
+  ,Para [Str "This",Space,Str "chapter",Space,Str "doesn\8217t",Space,Str "change",Space,Str "chapter",Space,Str "prefix",Space,Str "of",Space,Str "referenced",Space,Str "elements,",Space,Str "instead",Space,Str "keeping",Space,Str "number",Space,Str "of",Space,Str "previous",Space,Str "chapter,",SoftBreak,Str "e.g.\160",Span ("eq:eqn2",[],[]) [Math DisplayMath " S(x) = \\int_{x_1}^{x_2} a x+b \\  \\mathrm{d}x \\qquad(3)"]]
   ,Header 1 ("sec:chapter-5.-reference-lists",[],[]) [Str "Chapter",Space,Str "5.",Space,Str "Reference",Space,Str "lists"]
   ,Para [Str "It\8217s",Space,Str "also",Space,Str "possible",Space,Str "to",Space,Str "show",Space,Str "lists",Space,Str "of",Space,Str "figures",Space,Str "and",Space,Str "tables,",Space,Str "like",Space,Str "this:"]
   ,Header 2 ("list-of-figures",[],[]) [Str "List",Space,Str "of",Space,Str "Figures"]
diff --git a/test/m2m/listing-captions-ids/expect.tex b/test/m2m/listing-captions-ids/expect.tex
--- a/test/m2m/listing-captions-ids/expect.tex
+++ b/test/m2m/listing-captions-ids/expect.tex
@@ -9,7 +9,7 @@
 \begin{Shaded}
 \begin{Highlighting}[]
 \OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
-\NormalTok{main }\FunctionTok{=}\NormalTok{ putStrLn }\StringTok{"Hello World!"}
+\NormalTok{main }\FunctionTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
 \end{Highlighting}
 \end{Shaded}
 
@@ -24,7 +24,7 @@
 \begin{Shaded}
 \begin{Highlighting}[]
 \OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
-\NormalTok{main }\FunctionTok{=}\NormalTok{ putStrLn }\StringTok{"Hello World!"}
+\NormalTok{main }\FunctionTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
 \end{Highlighting}
 \end{Shaded}
 
@@ -39,7 +39,7 @@
 \begin{Shaded}
 \begin{Highlighting}[]
 \OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
-\NormalTok{main }\FunctionTok{=}\NormalTok{ putStrLn }\StringTok{"Hello World!"}
+\NormalTok{main }\FunctionTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
 \end{Highlighting}
 \end{Shaded}
 
@@ -54,7 +54,7 @@
 \begin{Shaded}
 \begin{Highlighting}[]
 \OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
-\NormalTok{main }\FunctionTok{=}\NormalTok{ putStrLn }\StringTok{"Hello World!"}
+\NormalTok{main }\FunctionTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
 \end{Highlighting}
 \end{Shaded}
 
@@ -63,7 +63,7 @@
 \begin{Shaded}
 \begin{Highlighting}[]
 \OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
-\NormalTok{main }\FunctionTok{=}\NormalTok{ putStrLn }\StringTok{"Hello World!"}
+\NormalTok{main }\FunctionTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
 \end{Highlighting}
 \end{Shaded}
 
@@ -72,7 +72,7 @@
 \begin{Shaded}
 \begin{Highlighting}[]
 \OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
-\NormalTok{main }\FunctionTok{=}\NormalTok{ putStrLn }\StringTok{"Hello World!"}
+\NormalTok{main }\FunctionTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
 \end{Highlighting}
 \end{Shaded}
 
@@ -89,7 +89,7 @@
 \begin{Shaded}
 \begin{Highlighting}[]
 \OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
-\NormalTok{main }\FunctionTok{=}\NormalTok{ putStrLn }\StringTok{"Hello World!"}
+\NormalTok{main }\FunctionTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
 \end{Highlighting}
 \end{Shaded}
 
@@ -104,7 +104,7 @@
 \begin{Shaded}
 \begin{Highlighting}[]
 \OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
-\NormalTok{main }\FunctionTok{=}\NormalTok{ putStrLn }\StringTok{"Hello World!"}
+\NormalTok{main }\FunctionTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
 \end{Highlighting}
 \end{Shaded}
 
@@ -119,7 +119,7 @@
 \begin{Shaded}
 \begin{Highlighting}[]
 \OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
-\NormalTok{main }\FunctionTok{=}\NormalTok{ putStrLn }\StringTok{"Hello World!"}
+\NormalTok{main }\FunctionTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
 \end{Highlighting}
 \end{Shaded}
 
@@ -134,7 +134,7 @@
 \begin{Shaded}
 \begin{Highlighting}[]
 \OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
-\NormalTok{main }\FunctionTok{=}\NormalTok{ putStrLn }\StringTok{"Hello World!"}
+\NormalTok{main }\FunctionTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
 \end{Highlighting}
 \end{Shaded}
 
@@ -147,7 +147,7 @@
 \begin{Shaded}
 \begin{Highlighting}[]
 \OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
-\NormalTok{main }\FunctionTok{=}\NormalTok{ putStrLn }\StringTok{"Hello World!"}
+\NormalTok{main }\FunctionTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
 \end{Highlighting}
 \end{Shaded}
 
@@ -156,7 +156,6 @@
 \begin{Shaded}
 \begin{Highlighting}[]
 \OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
-\NormalTok{main }\FunctionTok{=}\NormalTok{ putStrLn }\StringTok{"Hello World!"}
+\NormalTok{main }\FunctionTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
 \end{Highlighting}
 \end{Shaded}
-
diff --git a/test/test-pandoc-crossref.hs b/test/test-pandoc-crossref.hs
--- a/test/test-pandoc-crossref.hs
+++ b/test/test-pandoc-crossref.hs
@@ -271,6 +271,7 @@
             l = zip ["unk1:", "unk2:"] [1,2::Int]
         testRefs cits def cits
 
+#ifdef FLAKY
     describe "Test files" $ do
 
       it "demo.md matches demo.native" $ do
@@ -283,6 +284,7 @@
         Pandoc m b <- handleError $ runPure $ readMarkdown def {readerExtensions = pandocExtensions} $ T.pack demomd
         let m' = setMeta "chapters" True m
         runCrossRef m' Nothing crossRefBlocks b `shouldBe` Native.demochapters
+#endif
 
     describe "LaTeX" $ do
       let test = test' nullMeta
