diff --git a/multifile.cabal b/multifile.cabal
--- a/multifile.cabal
+++ b/multifile.cabal
@@ -10,7 +10,7 @@
 -- PVP summary:      +-+------- breaking API changes
 --                   | | +----- non-breaking API additions
 --                   | | | +--- code changes with no API change
-version:             0.1.0.4
+version:             0.1.0.5
 
 -- A short (one-line) description of the package.
 synopsis: create many files from one
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -10,6 +10,8 @@
 import Text.XML.HaXml hiding (info,Parser)
 import Text.XML.HaXml.Escape
 import Text.XML.HaXml.XmlContent.Haskell hiding (Parser)
+import qualified Text.PrettyPrint.HughesPJ as Pretty
+import Text.XML.HaXml.Namespaces
  
 import Extsubset
 import Data.Either
@@ -79,7 +81,7 @@
                _ -> False
       )
 
-myFun (CString a b c) | any g b =  CString a (cdatafy b) c
+myFun (CString a b c) | any g b =  CString True (cdatafy b) c
                       | otherwise =  CString a b c
 myFun (CElem e i) = CElem (myFun' e) i
 myFun  x = x
@@ -125,3 +127,76 @@
 
 processFiles (Multifile xs) = mapM_ processFile xs
 processFile (File (File_Attrs path) content) = writeFile path content
+
+
+
+{-
+
+htmlprint2 :: [Content i] -> Pretty.Doc
+htmlprint2 = Pretty.cat . map cprint . foldrefs
+  where
+  foldrefs [] = []
+  foldrefs (CString ws s1 i:CRef r _:CString _ s2 _:cs) =
+              CString ws (s1++"&"++ref r++";"++s2) i: foldrefs cs
+  foldrefs (c:cs) = c : foldrefs cs
+  ref (RefEntity n) = n -- Actually, should look-up symtable.
+  ref (RefChar s) = show s
+
+  cprint (CElem e _)      = element e
+  cprint (CString ws s _) = Pretty.cat (map Pretty.text (fmt 60
+                                             ((if ws then id else id) s)))
+  cprint (CRef r _)       = Pretty.text ("&"++ref r++";")
+  cprint (CMisc _ _)      = Pretty.empty
+
+  element (Elem n as []) = Pretty.text "<"               Pretty.<>
+                           Pretty.text (printableName n) Pretty.<>
+                           attrs as                      Pretty.<>
+                           Pretty.text " />"
+  element (Elem n as cs) =
+                    --  ( Pretty.text "<"   Pretty.<>
+                    --    Pretty.text n     Pretty.<>
+                    --    attrs as          Pretty.<>
+                    --    Pretty.text ">")  Pretty.$$
+                    --  Pretty.nest 6 (htmlprint cs)  Pretty.$$
+                    --  ( Pretty.text "</"  Pretty.<>
+                    --    Pretty.text n     Pretty.<>
+                    --    Pretty.text ">" )
+                        Pretty.fcat [ ( Pretty.text "<"               Pretty.<>
+                                        Pretty.text (printableName n) Pretty.<>
+                                        attrs as                      Pretty.<>
+                                        Pretty.text ">")
+                                    , Pretty.nest 4 (htmlprint cs)
+                                    , ( Pretty.text "</"              Pretty.<>
+                                        Pretty.text (printableName n) Pretty.<>
+                                        Pretty.text ">" )
+                                    ]
+
+  attrs = Pretty.cat . map attribute
+  attribute (n,v@(AttValue _)) =
+               Pretty.text " "               Pretty.<>
+               Pretty.text (printableName n) Pretty.<>
+               Pretty.text "='"              Pretty.<>
+               Pretty.text (show v)          Pretty.<>
+               Pretty.text "'"
+
+  fmt _ [] = []
+  fmt n s  = let (top,bot) = splitAt n s
+                 (word,left) = keepUntil isSpace (reverse top)
+             in if length top < n then [s]
+                else if not (null left) then
+                     reverse left: fmt n (word++bot)
+                else let (big,rest) = keepUntil isSpace s
+                     in reverse big: fmt n rest
+
+  deSpace []     = []
+  deSpace (c:cs) | c=='\n'   = deSpace (' ':cs)
+                 | isSpace c = c : deSpace (dropWhile isSpace cs)
+                 | otherwise = c : deSpace cs
+
+  keepUntil p xs = select p ([],xs)
+      where select _ (ls,[])     = (ls,[])
+            select q (ls,(y:ys)) | q y       = (ls,y:ys)
+                                 | otherwise = select q (y:ls,ys)
+
+
+-}
