--- a/ether/readpacket.c
+++ b/ether/readpacket.c
@@ -70,6 +70,10 @@
 #include <memory.h>
 #include <errno.h>
 
+#if defined (__linux__)
+#include <poll.h>
+#endif
+
 #include "../ether/channel.h"
 #include "../tools/memory.h"
 #include "../tools/error.h"
@@ -95,8 +99,6 @@ ssize_t readpacket (struct channel const
 
 #elif defined (__linux__)
 
-#include <sys/poll.h>
-
 	struct pollfd pollfd =
 	{
 		channel->fd,
--- a/serial/serial.c
+++ b/serial/serial.c
@@ -69,6 +69,8 @@
 
 #if defined (WIN32)
 #include <Windows.h>
+#else
+#include <sys/select.h>
 #endif
 
 /*====================================================================*
