diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,9 @@
+[1.17.0.5]
+
+  * Allow aeson 1.1.
+  * Added tests for Walk (originally from pandoc).
+  * Renamed README -> README.md, fix link (Kolen Cheung).
+
 [1.17.0.4]
 
   * Re-add Functor constraint to walkM, needed for ghc 7.8.
diff --git a/pandoc-types.cabal b/pandoc-types.cabal
--- a/pandoc-types.cabal
+++ b/pandoc-types.cabal
@@ -1,5 +1,5 @@
 Name:                pandoc-types
-Version:             1.17.0.4
+Version:             1.17.0.5
 Synopsis:            Types for representing a structured document
 Description:         @Text.Pandoc.Definition@ defines the 'Pandoc' data
                      structure, which is used by pandoc to represent
@@ -51,7 +51,7 @@
                      syb >= 0.1 && < 0.7,
                      ghc-prim >= 0.2,
                      bytestring >= 0.9 && < 0.11,
-                     aeson >= 0.6.2 && < 1.1,
+                     aeson >= 0.6.2 && < 1.2,
                      QuickCheck >= 2
   if impl(ghc < 7.10)
     Build-depends:   deepseq-generics >= 0.1 && < 0.2
@@ -64,7 +64,8 @@
   main-is:             test-pandoc-types.hs
   build-depends:       base,
                        pandoc-types,
-                       aeson >= 0.6.2 && < 1.1,
+                       syb,
+                       aeson >= 0.6.2 && < 1.2,
                        containers >= 0.3,
                        bytestring >= 0.9 && < 0.11,
                        test-framework >= 0.3 && < 0.9,
diff --git a/test/test-pandoc-types.hs b/test/test-pandoc-types.hs
--- a/test/test-pandoc-types.hs
+++ b/test/test-pandoc-types.hs
@@ -1,8 +1,12 @@
-{-# LANGUAGE OverloadedStrings, QuasiQuotes #-}
+{-# LANGUAGE OverloadedStrings, QuasiQuotes, FlexibleContexts #-}
 
 import Text.Pandoc.Definition
+import Text.Pandoc.Walk
+import Text.Pandoc.Arbitrary()
+import Data.Generics
 import Test.HUnit (Assertion, assertEqual, assertFailure)
 import Text.Pandoc.Arbitrary ()
+import Data.Char (toUpper)
 import Data.Aeson (FromJSON, ToJSON, encode, decode)
 import Test.Framework
 import Test.Framework.Providers.QuickCheck2 (testProperty)
@@ -11,6 +15,33 @@
 import Data.String.QQ
 import Data.ByteString.Lazy (ByteString)
 
+p_walk :: (Typeable a, Walkable a Pandoc)
+       => (a -> a) -> Pandoc -> Bool
+p_walk f d = everywhere (mkT f) d == walk f d
+
+p_query :: (Eq a, Typeable a1, Monoid a, Walkable a1 Pandoc)
+        => (a1 -> a) -> Pandoc -> Bool
+p_query f d = everything mappend (mempty `mkQ` f) d == query f d
+
+inlineTrans :: Inline -> Inline
+inlineTrans (Str xs) = Str $ map toUpper xs
+inlineTrans (Emph xs) = Strong xs
+inlineTrans x = x
+
+blockTrans :: Block -> Block
+blockTrans (Plain xs) = Para xs
+blockTrans (BlockQuote xs) = Div ("",["special"],[]) xs
+blockTrans x = x
+
+inlineQuery :: Inline -> String
+inlineQuery (Str xs) = xs
+inlineQuery _ = ""
+
+blockQuery :: Block -> [Int]
+blockQuery (Header lev _ _) = [lev]
+blockQuery _ = []
+
+
 prop_roundtrip :: Pandoc -> Bool
 prop_roundtrip doc = case decode $ encode doc :: (Maybe Pandoc) of
   Just doc' -> doc == doc'
@@ -296,7 +327,13 @@
 
 tests :: [Test]
 tests =
-  [ testGroup "JSON"
+  [ testGroup "Walk"
+    [ testProperty "p_walk inlineTrans" (p_walk inlineTrans)
+    , testProperty "p_walk blockTrans" (p_walk blockTrans)
+    , testProperty "p_query inlineQuery" (p_query inlineQuery)
+    , testProperty "p_query blockQuery" (p_query blockQuery)
+    ]
+  , testGroup "JSON"
     [ testGroup "encoding/decoding properties"
       [ testProperty "round-trip" prop_roundtrip
       ]
