diff --git a/network-multicast.cabal b/network-multicast.cabal
--- a/network-multicast.cabal
+++ b/network-multicast.cabal
@@ -1,6 +1,6 @@
 name:               network-multicast
-version:            0.0.10
-copyright:          2008-2013 Audrey Tang
+version:            0.0.11
+copyright:          2008-2014 Audrey Tang
 license:            PublicDomain
 license-file:       LICENSE
 author:             Audrey Tang <audreyt@audreyt.org>
diff --git a/src/Network/Multicast.hsc b/src/Network/Multicast.hsc
--- a/src/Network/Multicast.hsc
+++ b/src/Network/Multicast.hsc
@@ -89,8 +89,8 @@
     setup :: Socket -> IO Socket
     setup sock = do
       (addrInfo:_) <- getAddrInfo Nothing (Just host) (Just $ show port)
-      bindSocket sock $ addrAddress addrInfo
       addMembership sock host
+      bindSocket sock $ addrAddress addrInfo
       return sock
 
 doSetSocketOption :: Storable a => CInt -> Socket -> a -> IO CInt
