diff --git a/snap-server.cabal b/snap-server.cabal
--- a/snap-server.cabal
+++ b/snap-server.cabal
@@ -1,5 +1,5 @@
 name:           snap-server
-version:        0.9.3.1
+version:        0.9.3.3
 synopsis:       A fast, iteratee-based, epoll-enabled web server for the Snap Framework
 description:
   Snap is a simple and fast web development framework and server written in
@@ -98,7 +98,7 @@
     mtl                       >= 2        && < 3,
     network                   >= 2.3      && < 2.5,
     old-locale,
-    snap-core                 >= 0.9.3    && < 0.11,
+    snap-core                 >= 0.9.3    && < 0.10,
     text                      >= 0.11     && < 0.12,
     time                      >= 1.0      && < 1.5,
     unix-compat               >= 0.2      && < 0.5
diff --git a/src/Snap/Internal/Http/Server/Address.hs b/src/Snap/Internal/Http/Server/Address.hs
--- a/src/Snap/Internal/Http/Server/Address.hs
+++ b/src/Snap/Internal/Http/Server/Address.hs
@@ -1,5 +1,5 @@
-{-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE OverloadedStrings  #-}
 
 module Snap.Internal.Http.Server.Address
   ( getHostAddr
@@ -8,15 +8,15 @@
   ) where
 
 ------------------------------------------------------------------------------
-import           Network.Socket
-import           Data.Maybe
-import           Control.Monad
 import           Control.Exception
-import           Data.Typeable
-import           Data.ByteString (ByteString)
-import qualified Data.ByteString as S
-import           Data.ByteString.Char8 ()
+import           Control.Monad
+import           Data.ByteString          (ByteString)
+import qualified Data.ByteString          as S
+import           Data.ByteString.Char8    ()
 import           Data.ByteString.Internal (c2w, w2c)
+import           Data.Maybe
+import           Data.Typeable
+import           Network.Socket
 
 ------------------------------------------------------------------------------
 data AddressNotSupportedException = AddressNotSupportedException String
@@ -46,20 +46,22 @@
 getSockAddr :: Int
             -> ByteString
             -> IO (Family, SockAddr)
-getSockAddr p s | s == "*" = ipV4Addr p iNADDR_ANY
-getSockAddr p s | s == "::" = ipV6Addr p iN6ADDR_ANY
+getSockAddr p s | s == "*"  =
+                    return $! ( AF_INET
+                              , SockAddrInet (fromIntegral p) iNADDR_ANY
+                              )
+getSockAddr p s | s == "::" =
+                    return $! ( AF_INET6
+                              , SockAddrInet6 (fromIntegral p) 0 iN6ADDR_ANY 0
+                              )
 getSockAddr p s = do
-    let hints = defaultHints { addrFlags = [AI_NUMERICHOST] }
-    ai <- getAddrInfo (Just hints) (Just $ map w2c $ S.unpack s) Nothing
-    if ai == [] then throwIO $ AddressNotSupportedException $ show s
+    let hints = defaultHints { addrFlags = [AI_NUMERICSERV] }
+    ais <- getAddrInfo (Just hints) (Just $ map w2c $ S.unpack s)
+                       (Just $ show p)
+    if null ais
+      then throwIO $ AddressNotSupportedException $ show s
       else do
-        case addrAddress $ head ai of
-          SockAddrInet _ h -> ipV4Addr p h
-          SockAddrInet6 _ _ h _ -> ipV6Addr p h
-          x -> throwIO $ AddressNotSupportedException $ show x
-
-ipV4Addr :: Int -> HostAddress -> IO (Family, SockAddr)
-ipV4Addr p h = return (AF_INET, SockAddrInet (fromIntegral p) h)
-
-ipV6Addr :: Int -> HostAddress6 -> IO (Family, SockAddr)
-ipV6Addr p h = return (AF_INET6, SockAddrInet6 (fromIntegral p) 0 h 0)
+        let ai = head ais
+        let fm = addrFamily ai
+        let sa = addrAddress ai
+        return (fm, sa)
diff --git a/test/snap-server-testsuite.cabal b/test/snap-server-testsuite.cabal
--- a/test/snap-server-testsuite.cabal
+++ b/test/snap-server-testsuite.cabal
@@ -39,7 +39,7 @@
     old-locale,
     parallel                   >= 2        && <4,
     process,
-    snap-core                  >= 0.9.3    && <0.11,
+    snap-core                  >= 0.9.3    && <0.10,
     template-haskell,
     test-framework             >= 0.6      && <0.7,
     test-framework-hunit       >= 0.2.7    && <0.3,
@@ -104,7 +104,7 @@
     parallel                  >= 3.2     && <4,
     MonadCatchIO-transformers >= 0.2.1   && <0.4,
     network                   >= 2.3     && <2.5,
-    snap-core                 >= 0.9.3   && <0.11,
+    snap-core                 >= 0.9.3   && <0.10,
     template-haskell,
     time,
     transformers,
@@ -170,7 +170,7 @@
     network                    >= 2.3      && <2.5,
     old-locale,
     parallel                   >= 3.2      && <4,
-    snap-core                  >= 0.9.3    && <0.11,
+    snap-core                  >= 0.9.3    && <0.10,
     template-haskell,
     test-framework             >= 0.6      && <0.7,
     test-framework-hunit       >= 0.2.7    && <0.3,
