diff --git a/src/stratagus/iolib.cpp b/src/stratagus/iolib.cpp
index 4120076cf..207351011 100644
--- a/src/stratagus/iolib.cpp
+++ b/src/stratagus/iolib.cpp
@@ -32,9 +32,13 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "iocompat.h"
+#ifndef _MSC_VER
+#include <fcntl.h>
+#endif
 
 #include "freecraft.h"
+#include "iocompat.h"
+
 #include "campaign.h"			// for CurrentMapPath
 
 #include "iolib.h"
diff --git a/src/ui/menus.cpp b/src/ui/menus.cpp
index 29356b70a..ff64bed75 100644
--- a/src/ui/menus.cpp
+++ b/src/ui/menus.cpp
@@ -35,9 +35,14 @@
 #include <ctype.h>
 #include <limits.h>
 
-#include "iocompat.h"
+#ifndef _MSC_VER
+#include <fcntl.h>
+#endif
 
 #include "freecraft.h"
+
+#include "iocompat.h"
+
 #include "video.h"
 #include "player.h"
 #include "font.h"