diff --git a/Network/Socket/Msg.hs b/Network/Socket/Msg.hs
--- a/Network/Socket/Msg.hs
+++ b/Network/Socket/Msg.hs
@@ -73,8 +73,8 @@
 -- |Receive data and put it into a bytestring.
 recvMsg :: Socket -> Int -> IO (B.ByteString, SockAddr, [CMsg])
 recvMsg sock@(MkSocket sockfd _ _ _ _) sz = allocaBytes bufSz $ \bufPtr -> do
-        let addrPtr = plusPtr bufPtr addrSz
-        let iovPtr = plusPtr addrPtr sz
+        let addrPtr = plusPtr bufPtr sz
+        let iovPtr = plusPtr addrPtr addrSz
         let mhdrPtr = plusPtr iovPtr (sizeOf (undefined :: IOVec))
         let auxPtr = plusPtr mhdrPtr (sizeOf (undefined :: MsgHdr))
 
diff --git a/network-msg.cabal b/network-msg.cabal
--- a/network-msg.cabal
+++ b/network-msg.cabal
@@ -1,5 +1,5 @@
 name: network-msg
-version: 0.2
+version: 0.3
 category: Network
 build-type: Simple 
 cabal-version: >= 1.6
