diff --git a/Network/DNS/Decode.hs b/Network/DNS/Decode.hs
--- a/Network/DNS/Decode.hs
+++ b/Network/DNS/Decode.hs
@@ -11,23 +11,21 @@
 import Data.ByteString (ByteString)
 import qualified Data.ByteString.Char8 as BS
 import qualified Data.ByteString.Lazy as BL
-import Data.Enumerator (Enumerator, run_, ($$))
+import Data.Conduit
+import Data.Conduit.Network
 import Data.IP
 import Data.Maybe
 import Network
 import Network.DNS.Internal
 import Network.DNS.StateBinary
-import Network.Socket.Enumerator
 
 ----------------------------------------------------------------
 
 {-| Receiving DNS data from 'Socket' and parse it.
     The second argument is a buffer size for the socket.
 -}
-receive :: Socket -> Integer -> IO DNSFormat
-receive sock bufsize = receiveDNSFormat responseEnum
-  where
-    responseEnum = enumSocket bufsize sock
+receive :: Socket -> IO DNSFormat
+receive sock = receiveDNSFormat $ sourceSocket sock
 
 ----------------------------------------------------------------
 
@@ -37,12 +35,10 @@
 decode bs = fst <$> runSGet decodeResponse bs
 
 ----------------------------------------------------------------
-
-receiveDNSFormat :: Enumerator ByteString IO (DNSFormat, PState)
-                 -> IO DNSFormat
-receiveDNSFormat enum = fst <$> run_ (enum $$ iter)
+receiveDNSFormat :: Source (ResourceT IO) ByteString -> IO DNSFormat
+receiveDNSFormat src = fst <$> runResourceT (src $$ sink)
   where
-    iter = iterSGet decodeResponse
+    sink = sinkSGet decodeResponse
 
 ----------------------------------------------------------------
 
diff --git a/Network/DNS/Resolver.hs b/Network/DNS/Resolver.hs
--- a/Network/DNS/Resolver.hs
+++ b/Network/DNS/Resolver.hs
@@ -61,6 +61,7 @@
 data ResolvConf = ResolvConf {
     resolvInfo :: FileOrNumericHost
   , resolvTimeout :: Int
+  -- | This field was obsoleted.
   , resolvBufsize :: Integer
 }
 
@@ -68,7 +69,7 @@
   Default 'ResolvConf'.
   'resolvInfo' is 'RCFilePath' \"\/etc\/resolv.conf\".
   'resolvTimeout' is 3,000,000 micro seconds.
-  'resolvBufsize' is 512.
+  'resolvBufsize' is 512. (obsoleted)
 -}
 defaultResolvConf :: ResolvConf
 defaultResolvConf = ResolvConf {
@@ -173,10 +174,9 @@
 lookupRaw rlv dom typ = do
     seqno <- genId rlv
     sendAll sock (composeQuery seqno [q])
-    (>>= check seqno) <$> timeout tm (receive sock bufsize)
+    (>>= check seqno) <$> timeout tm (receive sock)
   where
     sock = dnsSock rlv
-    bufsize = dnsBufsize rlv
     tm = dnsTimeout rlv
     q = makeQuestion dom typ
     check seqno res = do
diff --git a/Network/DNS/StateBinary.hs b/Network/DNS/StateBinary.hs
--- a/Network/DNS/StateBinary.hs
+++ b/Network/DNS/StateBinary.hs
@@ -6,11 +6,11 @@
 import Control.Monad.State
 import Data.Attoparsec.ByteString
 import qualified Data.Attoparsec.ByteString.Lazy as AL
-import Data.Attoparsec.Enumerator
 import Data.ByteString (ByteString)
 import qualified Data.ByteString as BS (unpack, length)
 import qualified Data.ByteString.Lazy as BL (ByteString)
-import Data.Enumerator (Iteratee)
+import Data.Conduit
+import Data.Conduit.Attoparsec
 import Data.Int
 import Data.IntMap (IntMap)
 import qualified Data.IntMap as IM (insert, lookup, empty)
@@ -159,8 +159,8 @@
 initialState :: PState
 initialState = PState IM.empty 0
 
-iterSGet :: Monad m => SGet a -> Iteratee ByteString m (a, PState)
-iterSGet parser = iterParser (runStateT parser initialState)
+sinkSGet :: SGet a -> Sink ByteString (ResourceT IO) (a, PState)
+sinkSGet parser = sinkParser (runStateT parser initialState)
 
 runSGet :: SGet a -> BL.ByteString -> Either String (a, PState)
 runSGet parser bs = AL.eitherResult $ AL.parse (runStateT parser initialState) bs
diff --git a/Network/DNS/Types.hs b/Network/DNS/Types.hs
--- a/Network/DNS/Types.hs
+++ b/Network/DNS/Types.hs
@@ -8,17 +8,17 @@
   -- * TYPE
   , TYPE (..), intToType, typeToInt, toType
   -- * DNS Format
-  , DNSFormat (DNSFormat), header, question, answer, authority, additional
+  , DNSFormat (..)
   -- * DNS Header
-  , DNSHeader (DNSHeader), identifier, flags, qdCount, anCount, nsCount, arCount
+  , DNSHeader (..)
   -- * DNS Flags
-  , DNSFlags (DNSFlags), qOrR, opcode, authAnswer, trunCation, recDesired, recAvailable, rcode
+  , DNSFlags (..)
   -- * DNS Body
   , QorR (..)
   , OPCODE (..)
   , RCODE (..)
-  , ResourceRecord (ResourceRecord), rrname, rrtype, rrttl, rdlen, rdata
-  , Question (Question), qname, qtype, makeQuestion
+  , ResourceRecord (..)
+  , Question (..)
   , RDATA (..)
   , responseA, responseAAAA
   ) where
diff --git a/dns.cabal b/dns.cabal
--- a/dns.cabal
+++ b/dns.cabal
@@ -1,5 +1,5 @@
 Name:                   dns
-Version:                0.3.4
+Version:                0.3.5
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
@@ -23,31 +23,31 @@
   if impl(ghc >= 7)
     Build-Depends:      base >= 4 && < 5
                       , attoparsec
-                      , attoparsec-enumerator
+                      , attoparsec-conduit
                       , binary
                       , blaze-builder
                       , bytestring
+                      , conduit
                       , containers
-                      , enumerator
                       , iproute >= 1.2.4
                       , mtl
                       , network >= 2.3
-                      , network-enumerator
+                      , network-conduit
                       , random
   else
     Build-Depends:      base >= 4 && < 5
                       , attoparsec
-                      , attoparsec-enumerator
+                      , attoparsec-conduit
                       , binary
                       , blaze-builder
                       , bytestring
+                      , conduit
                       , containers
-                      , enumerator
                       , iproute >= 1.2.4
                       , mtl
                       , network
                       , network-bytestring
-                      , network-enumerator
+                      , network-conduit
                       , random
 Source-Repository head
   Type:                 git
