diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # ChangeLog for streaming-commons
 
+## 0.2.3.1
+
+* Fix `!6` host preference incorrectly allows IPv4 connections (https://github.com/fpco/streaming-commons/pull/83)
+* Fix case of windows header files to allow cross-compilation from linux to windows (https://github.com/fpco/streaming-commons/pull/84)
+
 ## 0.2.3.0
 
 * Allow Unix sockets on Windows (https://github.com/fpco/streaming-commons/pull/80)
diff --git a/Data/Streaming/Network.hs b/Data/Streaming/Network.hs
--- a/Data/Streaming/Network.hs
+++ b/Data/Streaming/Network.hs
@@ -162,9 +162,11 @@
                 HostIPv4     -> addrs4 ++ addrs6
                 HostIPv4Only -> addrs4
                 HostIPv6     -> addrs6 ++ addrs4
-                HostIPv6Only -> addrs6
+                HostIPv6Only -> addrs6 -- this isn't enough, IPv6Only socket option must also be set
                 _ -> addrs
 
+        sockOpts' = if s == HostIPv6Only then ((NS.IPv6Only,1):sockOpts) else sockOpts
+
         tryAddrs (addr1:rest@(_:_)) =
                                       E.catch
                                       (theBody addr1)
@@ -177,7 +179,7 @@
           (NS.socket (NS.addrFamily addr) (NS.addrSocketType addr) (NS.addrProtocol addr))
           NS.close
           (\sock -> do
-              mapM_ (\(opt,v) -> NS.setSocketOption sock opt v) sockOpts
+              mapM_ (\(opt,v) -> NS.setSocketOption sock opt v) sockOpts'
               NS.bind sock (NS.addrAddress addr)
               return sock
           )
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
 Common lower-level functions needed by various streaming data libraries.
 Intended to be shared by libraries like conduit and pipes.
 
-[![Build status](https://github.com/fpco/streaming-commons/actions/workflows/tests.yml/badge.svg)](https://github.com/fpco/streaming-commons/actions/workflows/tests.yml)
+[![Build status](https://github.com/fpco/streaming-commons/actions/workflows/ci.yml/badge.svg)](https://github.com/fpco/streaming-commons/actions/workflows/ci.yml)
 
 Dependencies
 ------------
diff --git a/System/Win32File.hsc b/System/Win32File.hsc
--- a/System/Win32File.hsc
+++ b/System/Win32File.hsc
@@ -31,8 +31,8 @@
 
 
 #include <fcntl.h>
-#include <Share.h>
-#include <SYS/Stat.h>
+#include <share.h>
+#include <sys/stat.h>
 #include <errno.h>
 
 newtype OFlag = OFlag CInt
diff --git a/streaming-commons.cabal b/streaming-commons.cabal
--- a/streaming-commons.cabal
+++ b/streaming-commons.cabal
@@ -1,5 +1,5 @@
 name:                streaming-commons
-version:             0.2.3.0
+version:             0.2.3.1
 synopsis:            Common lower-level functions needed by various streaming data libraries
 description:         Provides low-dependency functionality commonly needed by various streaming data libraries, such as conduit and pipes.
 homepage:            https://github.com/fpco/streaming-commons
