diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+0.4.2 (2011-06-13)
+
+    * Update dependency to HaXml 1.20.
+
+0.4.1 (2011-04-13)
+
+    * Use HaXml 1.20.
+    * Enable use with darcs --interactive.
+
 0.4.0 (2010-09-08)
 
     * make it possible to use more than one email address as recipient.
diff --git a/darcs-monitor.cabal b/darcs-monitor.cabal
--- a/darcs-monitor.cabal
+++ b/darcs-monitor.cabal
@@ -1,6 +1,6 @@
-Cabal-Version: >= 1.2
+Cabal-Version: >= 1.6
 Name: darcs-monitor
-Version: 0.4.1
+Version: 0.4.2
 License: GPL
 License-File: GPL.txt
 Copyright:
@@ -28,7 +28,7 @@
   description: Choose the new smaller, split-up base package.
 
 Executable darcs-monitor
-  Build-Depends: mtl, HaXml < 1.14
+  Build-Depends: mtl, HaXml == 1.20.*
   if flag(splitBase)
     Build-Depends: base >=3 && < 5, containers, directory, process
   else
diff --git a/darcs-monitor.hs b/darcs-monitor.hs
--- a/darcs-monitor.hs
+++ b/darcs-monitor.hs
@@ -35,6 +35,7 @@
 import System.Exit
 import System.IO
 import Text.XML.HaXml hiding (when,version,x,tag,cdata)
+import Text.XML.HaXml.Posn
 
 import Config
 import Darcs
@@ -194,8 +195,9 @@
   seenPatches <- readSeenPatches repo
   xml <- invokeDarcs ["changes", "--reverse", "--repo="++repo,"--xml-output","-a"]
   let Document _ _ (Elem "changelog" _ content) _ = xmlParse repo xml 
-  let patches = filter (\c -> case c of CElem _e -> True ; _ -> False) content
-  spl <- forM patches $ \ (CElem (Elem "patch" attrs content_)) -> 
+  let patches
+        = filter (\c -> case c of CElem _e _ -> True ; _ -> False) content
+  spl <- forM patches $ \ (CElem (Elem "patch" attrs content_) _) -> 
       do let author = getAttr "author" attrs
              localDate = getAttr "local_date" attrs
              hash = getAttr "hash" attrs
@@ -249,8 +251,8 @@
                                      massage ss
           massage [] = id
 
-getElem :: Name -> [Content] -> String
-getElem name (CElem (Elem name' _ content) : _rest)
+getElem :: Name -> [Content Posn] -> String
+getElem name (CElem (Elem name' _ content) _ : _rest)
     | name == name'     = getContent content ""
 getElem name (_ : rest) = getElem name rest
 getElem name []
@@ -259,14 +261,14 @@
       ++ show name
       ++ ", contents = []"
 
-getContent :: [Content] -> String -> String
-getContent (CElem (Elem _ _ content) : rest) = getContent content .
+getContent :: [Content Posn] -> String -> String
+getContent (CElem (Elem _ _ content) _ : rest) = getContent content .
                                                getContent rest
-getContent (CString _ cdata : rest) = showString cdata .
+getContent (CString _ cdata _ : rest) = showString cdata .
                                       getContent rest
-getContent (CRef ref : rest) = getRef ref .
+getContent (CRef ref _ : rest) = getRef ref .
                                getContent rest
-getContent (CMisc _ : rest) = getContent rest
+getContent (CMisc _ _ : rest) = getContent rest
 getContent [] = id
 
 getRef :: Reference -> String -> String
