I was doing janitorial Win64 printf format work on ws2_32 and noticed the following warning: ws2_32/socket16.c:319: warning: passing arg 3 of `WS_ioctlsocket' from incompatible pointer type which belongs to this piece of code: INT16 WINAPI ioctlsocket16(SOCKET16 s, LONG cmd, ULONG *argp) { return WS_ioctlsocket( s, cmd, argp ); /* <- line 319 */ } It looks like WS_ioctlsocket's third argument is defined to point to a u_long (http://source.winehq.org/source/dlls/ws2_32/socket.c#L2276) which belongs to BSD (http://source.winehq.org/source/include/winsock.h#L118 for example). Is it wrong "BSD-only" u_long in this function? Should WS_ioctlsocket be fixed to use a ULONG pointer? -- () ASCII Ribbon Campaign /\ - against HTML mail & vCards