diff --git a/src/universe.cpp b/src/universe.cpp
index b3ade7a0bd35c421933c1b43a5a85407c3f4937e..f6f1bdfe034f4f7d08fd0c7166659c4976855c3c 100644
--- a/src/universe.cpp
+++ b/src/universe.cpp
@@ -489,11 +489,18 @@ void Universe::_run() {
 
 		//Some kind of error occured, it is usually possible to recover from this.
 		if (selres < 0) {
+			#ifdef WIN32
+			int errNum = WSAGetLastError();
+			switch (errNum) {
+			default	: LOG(WARNING) << "Unhandled poll error: " << errNum;
+			}
+			#else
 			switch (errno) {
 			case 9	: continue;  // Bad file descriptor = socket closed
 			case 4	: continue;  // Interrupted system call ... no problem
-			default	: LOG(WARNING) << "Unhandled select error: " << strerror(errno) << "(" << errno << ")";
+			default	: LOG(WARNING) << "Unhandled poll error: " << strerror(errno) << "(" << errno << ")";
 			}
+			#endif
 			continue;
 		} else if (selres == 0) {
 			// Timeout, nothing to do...