diff --git a/Example.hs b/Example.hs
--- a/Example.hs
+++ b/Example.hs
@@ -1,6 +1,6 @@
 {-# LANGUAGE OverloadedStrings #-}
 import Network.Socks5
-import Network.Socket hiding (recv)
+import Network.Socket hiding (recv, sClose)
 import Network.Socket.ByteString
 import Network.BSD
 import Network
@@ -32,10 +32,8 @@
         -- passed to socksConnectAddr
         example1 socksServerAddr destName = do
             socket <- socket AF_INET Stream defaultProtocol
-            
-            gHost <- getHostByName destName
-            let destinationAddr = SockAddrInet 80 (head $ hostAddresses gHost)
-            socksConnectAddr socket socksServerAddr destinationAddr
+            socksConnectWithSocket socket (defaultSocksConfFromSockAddr socksServerAddr)
+                        (SocksAddress (SocksAddrDomainName $ BC.pack destName) 80)
 
             sendAll socket "GET / HTTP/1.0\r\n\r\n"
             recv socket 4096 >>= putStrLn . show
diff --git a/Network/Socks5.hs b/Network/Socks5.hs
--- a/Network/Socks5.hs
+++ b/Network/Socks5.hs
@@ -43,7 +43,7 @@
 import Control.Monad
 import Control.Exception
 import qualified Data.ByteString.Char8 as BC
-import Network.Socket ( sClose, Socket, SocketType(..), SockAddr(..), Family(..)
+import Network.Socket ( close, Socket, SocketType(..), SockAddr(..), Family(..)
                       , socket, socketToHandle, connect)
 import Network.BSD
 import Network (PortID(..))
@@ -78,7 +78,7 @@
              -> IO (Socket, (SocksHostAddress, PortNumber))
 socksConnect serverConf destAddr =
     getProtocolNumber "tcp" >>= \proto ->
-    bracketOnError (socket AF_INET Stream proto) sClose $ \sock -> do
+    bracketOnError (socket AF_INET Stream proto) close $ \sock -> do
         ret <- socksConnectWithSocket sock serverConf destAddr
         return (sock, ret)
 
@@ -114,7 +114,7 @@
 socksConnectWith socksConf desthost destport = do
     dport <- resolvePortID destport
     proto <- getProtocolNumber "tcp"
-    bracketOnError (socket AF_INET Stream proto) sClose $ \sock -> do
+    bracketOnError (socket AF_INET Stream proto) close $ \sock -> do
         sockaddr <- resolveToSockAddr (socksServer socksConf)
         socksConnectName sock sockaddr desthost dport
         return sock
diff --git a/Network/Socks5/Parse.hs b/Network/Socks5/Parse.hs
--- a/Network/Socks5/Parse.hs
+++ b/Network/Socks5/Parse.hs
@@ -188,7 +188,7 @@
 takeWhile :: (Word8 -> Bool) -> Parser ByteString
 takeWhile predicate = Parser $ \buf err ok ->
     case B.span predicate buf of
-        (_, "")  -> runParser (getMore >> takeWhile predicate) buf err ok
+        (_, b2) | B.null b2 -> runParser (getMore >> takeWhile predicate) buf err ok
         (b1, b2) -> ok b2 b1
 
 -- | Take the remaining bytes from the current position in the stream
@@ -209,7 +209,7 @@
 skipWhile :: (Word8 -> Bool) -> Parser ()
 skipWhile p = Parser $ \buf err ok ->
     case B.span p buf of
-        (_, "") -> runParser (getMore >> skipWhile p) B.empty err ok
+        (_, b2) | B.null b2 -> runParser (getMore >> skipWhile p) B.empty err ok
         (_, b2) -> ok b2 ()
 
 -- | Skip all the remaining bytes from the current position in the stream
diff --git a/socks.cabal b/socks.cabal
--- a/socks.cabal
+++ b/socks.cabal
@@ -1,16 +1,16 @@
 Name:                socks
-Version:             0.5.5
+Version:             0.5.6
+Synopsis:            Socks proxy (ver 5)
 Description:         Socks proxy (version 5) implementation.
 License:             BSD3
 License-file:        LICENSE
 Copyright:           Vincent Hanquez <vincent@snarc.org>
 Author:              Vincent Hanquez <vincent@snarc.org>
 Maintainer:          Vincent Hanquez <vincent@snarc.org>
-Synopsis:            Socks proxy (version 5) implementation.
 Build-Type:          Simple
 Category:            Network
 stability:           experimental
-Cabal-Version:       >=1.6
+Cabal-Version:       >=1.18
 Homepage:            http://github.com/vincenthz/hs-socks
 extra-doc-files:     README.md, Example.hs
 
@@ -18,7 +18,7 @@
   Build-Depends:     base >= 3 && < 5
                    , bytestring
                    , cereal >= 0.3.1
-                   , network >= 2.3
+                   , network >= 2.4
   Exposed-modules:   Network.Socks5
                      Network.Socks5.Lowlevel
                      Network.Socks5.Types
@@ -27,6 +27,7 @@
                      Network.Socks5.Command
                      Network.Socks5.Parse
   ghc-options:       -Wall -fno-warn-missing-signatures -fwarn-tabs
+  default-language:  Haskell2010
 
 source-repository head
   type: git
