diff --git a/dbus.cabal b/dbus.cabal
--- a/dbus.cabal
+++ b/dbus.cabal
@@ -1,6 +1,6 @@
 cabal-version: >=1.8
 name: dbus
-version: 1.2.7
+version: 1.2.8
 license: Apache-2.0
 license-file: license.txt
 maintainer: Andrey Sverdlichenko <blaze@ruddy.ru>
@@ -100,7 +100,7 @@
         exceptions <0.11,
         filepath <1.5,
         lens <4.18,
-        network >=2.8.0.0 && <2.9 || >=3.0.1.0 && <3.2,
+        network >=3.0.1.0 && <3.2,
         parsec <3.2,
         random <1.2,
         split <0.3,
@@ -110,7 +110,7 @@
         transformers <0.6,
         unix <2.8,
         vector <0.13,
-        xml-conduit <1.9,
+        xml-conduit >=1.9.0.0 && <1.10.0.0,
         xml-types <0.4
 
 test-suite dbus_tests
@@ -147,7 +147,7 @@
         directory <1.4,
         extra <1.7,
         filepath <1.5,
-        network >=2.8.0.0 && <2.9 || >=3.0.1.0 && <3.2,
+        network >=3.0.1.0 && <3.2,
         parsec <3.2,
         process <1.7,
         QuickCheck <2.14,
diff --git a/lib/DBus/Introspection/Parse.hs b/lib/DBus/Introspection/Parse.hs
--- a/lib/DBus/Introspection/Parse.hs
+++ b/lib/DBus/Introspection/Parse.hs
@@ -24,7 +24,7 @@
 
 parseXML :: ObjectPath -> T.Text -> Maybe Object
 parseXML path xml =
-    runConduit $ yieldMany [xml] .| X.parseText' X.def .| X.force "parse error" (parseObject $ getRootName path)
+    runConduit $ yieldMany [xml] .| X.parseText X.def .| X.force "parse error" (parseObject $ getRootName path)
 
 getRootName :: ObjectPath -> X.AttrParser ObjectPath
 getRootName defaultPath = do
@@ -64,13 +64,13 @@
         pure $ interfaceName_ (T.unpack ifName)
     parseContent ifName = do
         elems <- X.many $ do
-            X.many_ $ X.ignoreTreeContent "annotation"
+            X.many_ $ X.ignoreTreeContent "annotation" X.ignoreAttrs
             X.choose
                 [ parseMethod
                 , parseSignal
                 , parseProperty
                 ]
-        X.many_ $ X.ignoreTreeContent "annotation"
+        X.many_ $ X.ignoreTreeContent "annotation" X.ignoreAttrs
         let base = Interface ifName [] [] []
             addElem e (Interface n ms ss ps) = case e of
                 MethodDefinition m -> Interface n (m:ms) ss ps
@@ -86,9 +86,9 @@
         parseMemberName (T.unpack ifName)
     parseArgs name = do
         args <- X.many $ do
-            X.many_ $ X.ignoreTreeContent "annotation"
+            X.many_ $ X.ignoreTreeContent "annotation" X.ignoreAttrs
             X.tag' "arg" getArg pure
-        X.many_ $ X.ignoreTreeContent "annotation"
+        X.many_ $ X.ignoreTreeContent "annotation" X.ignoreAttrs
         pure $ MethodDefinition $ Method name args
     getArg = do
         name <- fromMaybe "" <$> X.attr "name"
@@ -107,9 +107,9 @@
         parseMemberName (T.unpack ifName)
     parseArgs name = do
         args <- X.many $ do
-            X.many_ $ X.ignoreTreeContent "annotation"
+            X.many_ $ X.ignoreTreeContent "annotation" X.ignoreAttrs
             X.tag' "arg" getArg pure
-        X.many_ $ X.ignoreTreeContent "annotation"
+        X.many_ $ X.ignoreTreeContent "annotation" X.ignoreAttrs
         pure $ SignalDefinition $ Signal name args
     getArg = do
         name <- fromMaybe "" <$> X.attr "name"
diff --git a/lib/DBus/Transport.hs b/lib/DBus/Transport.hs
--- a/lib/DBus/Transport.hs
+++ b/lib/DBus/Transport.hs
@@ -45,7 +45,7 @@
 import           Data.Monoid
 import           Data.Typeable (Typeable)
 import           Foreign.C (CUInt)
-import           Network.Socket hiding (recv)
+import           Network.Socket
 import           Network.Socket.ByteString (sendAll, recv)
 import qualified System.Info
 import           Prelude
