diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,7 +1,15 @@
+* 3000.11.5.1 (29 July 2024)
+
+  - Support GHC 9.10 and fix warnings
+
 * 3000.11.5 (17 March 2023)
 
   - Updates for `mtl-2.3`.
   - Add an upper bound on `mtl` to prevent future breakage.
+
+  - r1 (25 March 2023): support GHC 9.6, `base-compat-0.13`
+  - r2 (23 Oct 2023): support GHC 9.8
+  - r3 (16 Apr 2024): allow `network-3.2`
 
 * 3000.11.4.1 (9 July 2020)
 
diff --git a/Network/XmlRpc/Client.hs b/Network/XmlRpc/Client.hs
--- a/Network/XmlRpc/Client.hs
+++ b/Network/XmlRpc/Client.hs
@@ -43,6 +43,7 @@
 import qualified Control.Monad.Fail         as Fail
 import           Data.Functor               ((<$>))
 import           Data.Int
+import           Data.List                  (uncons)
 import           Data.Maybe
 import           Network.URI
 import           Text.Read.Compat           (readMaybe)
@@ -220,7 +221,7 @@
     where
       parseUserInfo info = let (u,pw) = break (==':') $ uriUserInfo info
                            in ( if null u then Nothing else Just u
-                              , if null pw then Nothing else Just $ dropAtEnd $ tail pw )
+                              , (dropAtEnd . snd) <$> uncons pw )
 
 --
 -- Utility functions
diff --git a/Network/XmlRpc/Pretty.hs b/Network/XmlRpc/Pretty.hs
--- a/Network/XmlRpc/Pretty.hs
+++ b/Network/XmlRpc/Pretty.hs
@@ -189,11 +189,11 @@
 markupdecl (MarkupMisc m) = misc m
 
 elementB (Elem n as []) = "<" <> (name n <+> fsep (map attribute as)) <> "/>"
-elementB (Elem n as cs)
-  | isText (P.head cs)  = "<" <> (name n <+> fsep (map attribute as)) <> ">" <>
-                          hcatMap contentB cs <> "</" <> name n <> ">"
-  | otherwise           = "<" <> (name n <+> fsep (map attribute as)) <> ">" <>
-                          hcatMap contentB cs <> "</" <> name n <> ">"
+elementB (Elem n as cs@(c:_))
+  | isText c  = "<" <> (name n <+> fsep (map attribute as)) <> ">" <>
+                hcatMap contentB cs <> "</" <> name n <> ">"
+  | otherwise = "<" <> (name n <+> fsep (map attribute as)) <> ">" <>
+                hcatMap contentB cs <> "</" <> name n <> ">"
 
 isText :: Content t -> Bool
 isText (CString _ _ _) = True
diff --git a/haxr.cabal b/haxr.cabal
--- a/haxr.cabal
+++ b/haxr.cabal
@@ -1,5 +1,5 @@
 Name: haxr
-Version: 3000.11.5
+Version: 3000.11.5.1
 Cabal-version: >=1.10
 Build-type: Simple
 Copyright: Bjorn Bringert, 2003-2006
@@ -22,7 +22,7 @@
         examples/test_client.hs       examples/test_server.hs       examples/time-xmlrpc-com.hs
         examples/validate.hs          examples/Makefile
 Bug-reports: https://github.com/byorgey/haxr/issues
-Tested-with: GHC ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.4 || ==9.4.1
+Tested-with: GHC ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.8 || ==9.4.8 || ==9.6.6 || ==9.8.2 || ==9.10.1
 
 Source-repository head
   type:     git
@@ -33,11 +33,11 @@
    default: True
 
 Library
-  Build-depends: base >= 4.9 && < 4.18,
-                 base-compat >= 0.8 && < 0.13,
+  Build-depends: base >= 4.9 && < 4.21,
+                 base-compat >= 0.8 && < 0.15,
                  mtl < 2.4,
                  mtl-compat,
-                 network < 3.2,
+                 network < 3.3,
                  http-streams,
                  HsOpenSSL,
                  io-streams,
