diff --git a/src/System/ZMQ4.hs b/src/System/ZMQ4.hs
--- a/src/System/ZMQ4.hs
+++ b/src/System/ZMQ4.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP   #-}
 {-# LANGUAGE GADTs #-}
 
 -- |
@@ -926,6 +927,9 @@
 retry msg wait act = throwIfMinus1RetryMayBlock_ msg act wait
 
 wait' :: (Fd -> IO ()) -> ZMQPollEvent -> Socket a -> IO ()
+#ifdef mingw32_HOST_OS
+wait' _ _ _ = return ()
+#else
 wait' w f s = do
     fd <- getIntOpt s B.filedesc 0
     w (Fd fd)
@@ -934,6 +938,7 @@
         wait' w f s
   where
     testev e = e .&. fromIntegral (pollVal f) /= 0
+#endif
 
 -- | Wait until data is available for reading from the given Socket.
 -- After this function returns, a call to 'receive' will essentially be
diff --git a/src/System/ZMQ4/Base.hsc b/src/System/ZMQ4/Base.hsc
--- a/src/System/ZMQ4/Base.hsc
+++ b/src/System/ZMQ4/Base.hsc
@@ -321,11 +321,19 @@
 foreign import ccall unsafe "zmq.h zmq_disconnect"
     c_zmq_disconnect :: ZMQSocket -> CString -> IO CInt
 
+#ifdef mingw32_HOST_OS
+foreign import ccall safe "zmq.h zmq_sendmsg"
+    c_zmq_sendmsg :: ZMQSocket -> ZMQMsgPtr -> CInt -> IO CInt
+
+foreign import ccall safe "zmq.h zmq_recvmsg"
+    c_zmq_recvmsg :: ZMQSocket -> ZMQMsgPtr -> CInt -> IO CInt
+#else
 foreign import ccall unsafe "zmq.h zmq_sendmsg"
     c_zmq_sendmsg :: ZMQSocket -> ZMQMsgPtr -> CInt -> IO CInt
 
 foreign import ccall unsafe "zmq.h zmq_recvmsg"
     c_zmq_recvmsg :: ZMQSocket -> ZMQMsgPtr -> CInt -> IO CInt
+#endif
 
 foreign import ccall unsafe "zmq.h zmq_socket_monitor"
     c_zmq_socket_monitor :: ZMQSocket -> CString -> CInt -> IO CInt
diff --git a/zeromq4-haskell.cabal b/zeromq4-haskell.cabal
--- a/zeromq4-haskell.cabal
+++ b/zeromq4-haskell.cabal
@@ -1,5 +1,5 @@
 name:               zeromq4-haskell
-version:            0.3
+version:            0.3.1
 synopsis:           Bindings to ZeroMQ 4.x
 category:           System, FFI
 license:            MIT
@@ -60,7 +60,10 @@
         , semigroups                >= 0.8
         , transformers              >= 0.3
 
-    pkgconfig-depends: libzmq >= 4.0 && < 5.0
+    if os(windows)
+        extra-libraries: zmq
+    else
+        pkgconfig-depends: libzmq >= 4.0 && < 5.0
 
     if os(freebsd)
         extra-libraries: pthread
