diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c
index 6ac9364d8a10047deac5653b9b6b0464b54b08b8..9a5b81a49360d19e188c7931460a734b79bd40af 100644
--- a/src/server/gdb_server.c
+++ b/src/server/gdb_server.c
@@ -90,7 +90,6 @@ int gdb_last_signal(target_t *target)
 	}
 }
 
-#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,
@@ -131,7 +130,6 @@ int check_pending(connection_t *connection, int timeout_s, int *got_data)
 	*got_data=FD_ISSET(connection->fd, &read_fds)!=0;
 	return ERROR_OK;
 }
-#endif
 
 int gdb_get_char(connection_t *connection, int* next_char)
 {
@@ -159,11 +157,9 @@ 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)
 		{
diff --git a/src/server/server.c b/src/server/server.c
index 33bf00cf218907256daa8b962ae5ab0c8aa9fc2f..21a8ebabaa1827e06f3356041cd713348e185981 100644
--- a/src/server/server.c
+++ b/src/server/server.c
@@ -52,9 +52,7 @@ int add_connection(service_t *service, command_context_t *cmd_ctx)
 	unsigned int address_size;
 	connection_t *c, **p;
 	int retval;
-#ifndef _WIN32
 	int flag=1;
-#endif
 	
 	c = malloc(sizeof(connection_t));
 	c->fd = -1;
@@ -66,34 +64,17 @@ int add_connection(service_t *service, command_context_t *cmd_ctx)
 	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)
 	{
@@ -184,6 +165,19 @@ int add_service(char *name, enum connection_type type, unsigned short port, int
 		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));