diff --git a/Text/XML/Expat/Annotated.hs b/Text/XML/Expat/Annotated.hs
--- a/Text/XML/Expat/Annotated.hs
+++ b/Text/XML/Expat/Annotated.hs
@@ -71,7 +71,7 @@
 import Data.ByteString (ByteString)
 import qualified Data.ByteString as B
 import qualified Data.ByteString.Lazy as L
-import Data.List.Class
+import Data.List.Class (List(..), ListItem(..), cons, foldlL, joinM)
 import Data.Monoid
 
 
diff --git a/Text/XML/Expat/Cursor.hs b/Text/XML/Expat/Cursor.hs
--- a/Text/XML/Expat/Cursor.hs
+++ b/Text/XML/Expat/Cursor.hs
@@ -97,7 +97,7 @@
 import Data.Maybe(isNothing)
 import Data.Monoid
 import Data.Functor.Identity
-import Data.List.Class
+import Data.List.Class (List(..), ListItem(..), cons, foldlL, lengthL)
 
 data Tag tag text = Tag { tagName    :: tag
                         , tagAttribs :: Attributes tag text
diff --git a/Text/XML/Expat/Extended.hs b/Text/XML/Expat/Extended.hs
--- a/Text/XML/Expat/Extended.hs
+++ b/Text/XML/Expat/Extended.hs
@@ -80,7 +80,7 @@
 import Control.DeepSeq
 import qualified Data.ByteString as B
 import qualified Data.ByteString.Lazy as L
-import Data.List.Class
+import Data.List.Class (List, foldlL, joinM)
 import Data.Maybe
 import Data.Monoid
 
diff --git a/Text/XML/Expat/Format.hs b/Text/XML/Expat/Format.hs
--- a/Text/XML/Expat/Format.hs
+++ b/Text/XML/Expat/Format.hs
@@ -49,7 +49,7 @@
 import qualified Data.ByteString.Lazy as L
 import Data.ByteString.Internal (c2w, w2c)
 import Data.Char (isSpace)
-import Data.List.Class
+import Data.List.Class (List(..), ListItem(..), fromList)
 import Data.Monoid
 import Data.Word
 import Data.Text (Text)
diff --git a/Text/XML/Expat/Internal/DocumentClass.hs b/Text/XML/Expat/Internal/DocumentClass.hs
--- a/Text/XML/Expat/Internal/DocumentClass.hs
+++ b/Text/XML/Expat/Internal/DocumentClass.hs
@@ -6,7 +6,7 @@
 import Text.XML.Expat.Internal.NodeClass (NodeClass)
 import Control.DeepSeq
 import Control.Monad (mzero)
-import Data.List.Class
+import Data.List.Class (List)
 
 
 -- | XML declaration, consisting of version, encoding and standalone.
diff --git a/Text/XML/Expat/Internal/NodeClass.hs b/Text/XML/Expat/Internal/NodeClass.hs
--- a/Text/XML/Expat/Internal/NodeClass.hs
+++ b/Text/XML/Expat/Internal/NodeClass.hs
@@ -7,7 +7,7 @@
 
 import Control.Monad (mzero, liftM)
 import Data.Functor.Identity
-import Data.List.Class
+import Data.List.Class (List(..), ListItem(..), cons, fromList, mapL, toList)
 import Data.Monoid (Monoid)
 import Text.XML.Expat.SAX (GenericXMLString)
 
diff --git a/Text/XML/Expat/Proc.hs b/Text/XML/Expat/Proc.hs
--- a/Text/XML/Expat/Proc.hs
+++ b/Text/XML/Expat/Proc.hs
@@ -6,7 +6,7 @@
 import Text.XML.Expat.SAX
 
 import Control.Monad
-import Data.List.Class
+import Data.List.Class (filter)
 import Data.Maybe(listToMaybe)
 import Data.Monoid
 import Prelude hiding (filter)
diff --git a/Text/XML/Expat/SAX.hs b/Text/XML/Expat/SAX.hs
--- a/Text/XML/Expat/SAX.hs
+++ b/Text/XML/Expat/SAX.hs
@@ -45,7 +45,7 @@
 import qualified Data.Text as T
 import qualified Data.Text.Encoding as TE
 import qualified Codec.Binary.UTF8.String as U8
-import Data.List.Class hiding (tail)
+import Data.List.Class (List(..), ListItem(..), cons, fromList, mapL)
 import Data.Typeable
 import Data.Word
 import Control.Exception.Extensible as Exc
diff --git a/hexpat.cabal b/hexpat.cabal
--- a/hexpat.cabal
+++ b/hexpat.cabal
@@ -1,6 +1,6 @@
 Cabal-Version: >= 1.6
 Name: hexpat
-Version: 0.20.2
+Version: 0.20.3
 Synopsis: XML parser/formatter based on expat
 Description:
   This package provides a general purpose Haskell XML library using Expat to
@@ -123,7 +123,7 @@
     deepseq >= 1.1.0.0 && < 1.4.0.0,
     containers,
     extensible-exceptions == 0.1.*,
-    List >= 0.4.2 && < 0.5
+    List >= 0.4.2 && < 0.6
   Exposed-Modules:
     Text.XML.Expat.Annotated,
     Text.XML.Expat.Cursor,
diff --git a/test/suite/Text/XML/Expat/UnitTests.hs b/test/suite/Text/XML/Expat/UnitTests.hs
--- a/test/suite/Text/XML/Expat/UnitTests.hs
+++ b/test/suite/Text/XML/Expat/UnitTests.hs
@@ -235,6 +235,11 @@
     assertEqual "SA1enc" [XMLDeclaration "1.0" (Just "UTF-8") (Just True),StartElement "hello" [],EndElement "hello"]
         (SAX.parse defaultParseOptions (LC.pack "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><hello/>") :: [SAXEvent String String])
 
+normalizeSAXText :: Monoid t => [SAXEvent s t] -> [SAXEvent s t]
+normalizeSAXText (CharacterData a:CharacterData b:xs) = normalizeSAXText (CharacterData (a `mappend` b):xs)
+normalizeSAXText (x:xs) = x:normalizeSAXText xs
+normalizeSAXText [] = []
+
 test_various :: IO ()
 test_various =
     assertEqual "var1" [
@@ -252,7 +257,7 @@
             Comment " this is a comment ",
             EndElement "test"
         ]
-        (SAX.parse defaultParseOptions (LC.pack variousText) :: [SAXEvent String String])
+        (normalizeSAXText $ SAX.parse defaultParseOptions (LC.pack variousText) :: [SAXEvent String String])
 
 variousText =
     "<test>"++
