diff --git a/Source/CPack/WiX/cmWIXFilesSourceWriter.cxx b/Source/CPack/WiX/cmWIXFilesSourceWriter.cxx
index 446ce9639aed8c9b384893f01f9a38a54b96503e..2833d53dfdedce3694899c833138589a11393635 100644
--- a/Source/CPack/WiX/cmWIXFilesSourceWriter.cxx
+++ b/Source/CPack/WiX/cmWIXFilesSourceWriter.cxx
@@ -17,6 +17,7 @@
 #include <cmInstalledFile.h>
 
 #include <sys/types.h>
+// include sys/stat.h after sys/types.h
 #include <sys/stat.h>
 
 cmWIXFilesSourceWriter::cmWIXFilesSourceWriter(cmCPackLog* logger,
diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx
index 9e17bc836c2a7c65bd53df621473cd51e329b785..794955f187436c36b22260e57204b6093aa295e0 100644
--- a/Source/CPack/cmCPackDebGenerator.cxx
+++ b/Source/CPack/cmCPackDebGenerator.cxx
@@ -761,6 +761,7 @@ std::string cmCPackDebGenerator::GetComponentInstallDirNameSuffix(
  */
 
 #include <sys/types.h>
+// include sys/stat.h after sys/types.h
 #include <sys/stat.h>
 
 #include <stdio.h>
diff --git a/Source/CPack/cmCPackSTGZGenerator.cxx b/Source/CPack/cmCPackSTGZGenerator.cxx
index 8a83666fa4507b240242927cd08e089c42a98609..4a8754e539913c0ec458e76ceb57847e07164f67 100644
--- a/Source/CPack/cmCPackSTGZGenerator.cxx
+++ b/Source/CPack/cmCPackSTGZGenerator.cxx
@@ -18,8 +18,10 @@
 #include "cmSystemTools.h"
 #include "cmake.h"
 
-#include <sys/types.h>
 #include <cmsys/FStream.hxx>
+
+#include <sys/types.h>
+// include sys/stat.h after sys/types.h
 #include <sys/stat.h>
 
 //----------------------------------------------------------------------
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx
index 035b97ff960ac2d27fe99052d7f96a6f8dd2299d..575051e61043c4245bba97902d202ec17fd5a32e 100644
--- a/Source/cmFileCommand.cxx
+++ b/Source/cmFileCommand.cxx
@@ -28,8 +28,10 @@
 #endif
 
 #undef GetCurrentDirectory
-#include <sys/types.h>
 #include <assert.h>
+
+#include <sys/types.h>
+// include sys/stat.h after sys/types.h
 #include <sys/stat.h>
 
 #include <cmsys/Directory.hxx>
diff --git a/Source/cmTimestamp.cxx b/Source/cmTimestamp.cxx
index 7d1ba3231ac85cc96dc067aa485c3af203236bcd..b5c9d8e781b48f2e9b7df89d70e3600ddc2c5351 100644
--- a/Source/cmTimestamp.cxx
+++ b/Source/cmTimestamp.cxx
@@ -13,9 +13,10 @@
 
 #include <cstdlib>
 #include <cstring>
+#include <sstream>
 
 #include <sys/types.h>
-#include <sstream>
+// include sys/stat.h after sys/types.h
 #include <sys/stat.h>
 
 //----------------------------------------------------------------------------
diff --git a/Source/cmWriteFileCommand.cxx b/Source/cmWriteFileCommand.cxx
index d52d6b5d6a443c1b757cc209c837b5c6596fb1aa..c4468f334873b2758dac14f05152a336d9d36635 100644
--- a/Source/cmWriteFileCommand.cxx
+++ b/Source/cmWriteFileCommand.cxx
@@ -14,6 +14,7 @@
 #include <cmsys/FStream.hxx>
 
 #include <sys/types.h>
+// include sys/stat.h after sys/types.h
 #include <sys/stat.h>
 
 // cmLibraryCommand
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index da6e59e3689759d12e36728983310c9b1ecc03cf..f176cc10db3669d3ed41d1af9af8458e9cc449aa 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -99,11 +99,12 @@
 #    include "cmGlobalXCodeGenerator.h"
 #    define CMAKE_USE_XCODE 1
 #  endif
-#  include <sys/types.h>
 #  include <sys/resource.h>
 #  include <sys/time.h>
 #endif
 
+#include <sys/types.h>
+// include sys/stat.h after sys/types.h
 #include <sys/stat.h> // struct stat
 
 #include <list>