hi! i asked in the devel list two times for help about this issue - but no one was able to push me in the right direction. Maybe submitting it as patch cause some reactions :) The patch make the games Grand Prix Legends and Nascar 2002 work - and Neverwinter Nights still works with it. CU! ChangeLog: * dlls/winsock/socket.c: Christoph Frick <frick@sc-networks.de> Force (WS_)SO_REUSEADDR before binding to a socket; ignore (WS_)SO_DONTROUTE; Network games in Grand Prix Legends and Nascar 2002 are possible now. Index: socket.c =================================================================== RCS file: /home/wine/wine/dlls/winsock/socket.c,v retrieving revision 1.109 diff -u -r1.109 socket.c --- socket.c 17 Oct 2002 16:43:43 -0000 1.109 +++ socket.c 25 Oct 2002 08:00:48 -0000 @@ -1451,6 +1451,7 @@ { int fd = _get_sock_fd(s); int res; + int on = 1; TRACE("socket %04x, ptr %p, length %d\n", s, name, namelen); #if DEBUG_SOCKADDR @@ -1476,6 +1477,11 @@ } else { + /* The game GrandPrixLegends binds more than one time, but does + * not do a SO_REUSEADDR - Stevens says this is ok */ + FIXME( "Setting WS_SO_REUSEADDR on socket before we binding it\n"); + WS_setsockopt( s, WS_SOL_SOCKET, WS_SO_REUSEADDR, (char*)&on, sizeof(on) ); + if (bind(fd, uaddr, uaddrlen) < 0) { int loc_errno = errno; @@ -2665,6 +2671,17 @@ TRACE("setting global SO_OPENTYPE to 0x%x\n", *(int *)optval ); return 0; } + + /* For some reason the game GrandPrixLegends does set SO_DONTROUTE on its + * socket. This will either not happen under windows or it is ignored in + * windows (but it works in linux and therefor prevents the game to find + * games outsite the current network) */ + if ( level==WS_SOL_SOCKET && optname==WS_SO_DONTROUTE ) + { + FIXME("Does windows ignore SO_DONTROUTE?\n"); + return 0; + } + fd = _get_sock_fd(s); if (fd != -1)