diff --git a/hxt.cabal b/hxt.cabal
--- a/hxt.cabal
+++ b/hxt.cabal
@@ -1,6 +1,6 @@
 -- arch-tag: Haskell XML Toolbox main description file
 Name:           hxt
-Version:        9.3.1.6
+Version:        9.3.1.7
 Synopsis:       A collection of tools for processing XML with Haskell.
 Description:    The Haskell XML Toolbox bases on the ideas of HaXml and HXML,
                 but introduces a more general approach for processing XML with Haskell.
@@ -16,6 +16,7 @@
                 hxt-regex-xmlschema contain the extensions.
                 hxt-unicode contains encoding and decoding functions,
                 hxt-charproperties char properties for unicode and XML.
+                Changes from 9.3.1.6: canonicalize added in hread and hreadDoc
                 .
                 Changes from 9.3.1.4: conditionally (no default)
                 dependency from networt changed to network-uri with flag "network-uri"
diff --git a/src/Text/XML/HXT/Arrow/ReadDocument.hs b/src/Text/XML/HXT/Arrow/ReadDocument.hs
--- a/src/Text/XML/HXT/Arrow/ReadDocument.hs
+++ b/src/Text/XML/HXT/Arrow/ReadDocument.hs
@@ -484,6 +484,8 @@
       PI.hread                              -- substHtmlEntityRefs is done in parser
       >>>                                   -- as well as subst HTML char refs
       editNTreeA [isError :-> none]         -- ignores all errors
+      >>>
+      canonicalizeAllNodes                  -- combine text nodes, substitute char refs
 
 -- | like hread, but accepts a whole document, not a HTML content
 
@@ -493,7 +495,9 @@
       PI.hreadDoc                           -- substHtmlEntityRefs is done in parser
       >>>                                   -- as well as subst HTML char refs
       editNTreeA [isError :-> none]         -- ignores all errors
-
+      >>>
+      canonicalizeAllNodes
+      
 -- ------------------------------------------------------------
 
 -- |
