}
 }
 
-#ifndef _WIN32
 int check_pending(connection_t *connection, int timeout_s, int *got_data)
 {
        /* a non-blocking socket will block if there is 0 bytes available on the socket,
        *got_data=FD_ISSET(connection->fd, &read_fds)!=0;
        return ERROR_OK;
 }
-#endif
 
 int gdb_get_char(connection_t *connection, int* next_char)
 {
 
        for (;;)
        {
-#ifndef _WIN32
                retval=check_pending(connection, 1, NULL);
                if (retval!=ERROR_OK)
                        return retval;
-#endif
                gdb_con->buf_cnt = read_socket(connection->fd, gdb_con->buffer, GDB_BUFFER_SIZE);
                if (gdb_con->buf_cnt > 0)
                {
 
        unsigned int address_size;
        connection_t *c, **p;
        int retval;
-#ifndef _WIN32
        int flag=1;
-#endif
        
        c = malloc(sizeof(connection_t));
        c->fd = -1;
        c->next = NULL;
 
        address_size = sizeof(c->sin);
-#ifndef _WIN32
-       int segsize=65536;
-       setsockopt(service->fd, IPPROTO_TCP, TCP_MAXSEG,  &segsize, sizeof(int));
-       int window_size = 128 * 1024;   
-
-       /* These setsockopt()s must happen before the accept() */
-
-       setsockopt(service->fd, SOL_SOCKET, SO_SNDBUF,
-                (char *) &window_size, sizeof(window_size));
-
-       setsockopt(service->fd, SOL_SOCKET, SO_RCVBUF,
-                (char *) &window_size, sizeof(window_size));
        
-#endif
        c->fd = accept(service->fd, (struct sockaddr *)&service->sin, &address_size);
-#ifndef _WIN32
-       // This increases performance dramatically for e.g. GDB load which
-       // does not have a sliding window protocol.
-    retval=setsockopt(c->fd,            /* socket affected */
-                            IPPROTO_TCP,     /* set option at TCP level */
-                            TCP_NODELAY,     /* name of option */
-                            (char *) &flag,  /* the cast is historical
-                                                    cruft */
-                            sizeof(int));    /* length of option value */
-    setsockopt(c->fd, IPPROTO_TCP, TCP_MAXSEG,  &segsize, sizeof(int));
-#endif 
-                               
-                               
+       
+       /* This increases performance dramatically for e.g. GDB load which
+        * does not have a sliding window protocol. */
+       retval=setsockopt(c->fd,        /* socket affected */
+                       IPPROTO_TCP,            /* set option at TCP level */
+                       TCP_NODELAY,            /* name of option */
+                       (char *)&flag,          /* the cast is historical cruft */
+                       sizeof(int));           /* length of option value */
+               
        LOG_INFO("accepting '%s' connection from %i", service->name, c->sin.sin_port);
        if ((retval = service->new_connection(c)) == ERROR_OK)
        {
                exit(-1);
        }
        
+#ifndef _WIN32
+       int segsize=65536;
+       setsockopt(c->fd, IPPROTO_TCP, TCP_MAXSEG,  &segsize, sizeof(int));
+#endif
+       int window_size = 128 * 1024;   
+
+       /* These setsockopt()s must happen before the listen() */
+       
+       setsockopt(c->fd, SOL_SOCKET, SO_SNDBUF,
+               (char *)&window_size, sizeof(window_size));
+       setsockopt(c->fd, SOL_SOCKET, SO_RCVBUF,
+               (char *)&window_size, sizeof(window_size));
+       
        if (listen(c->fd, 1) == -1)
        {
                LOG_ERROR("couldn't listen on socket: %s", strerror(errno));