diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 00000000..19c42d80
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,58 @@
+version: 2.2.0.{build}
+
+os: Visual Studio 2015
+
+branches:
+  except:
+    - /.*travis.*/
+skip_commits:
+  message: /travis/
+  files:
+    - .travis.yml
+
+environment:
+  global:
+    EVENT_TESTS_PARALLEL: 20
+    EVENT_BUILD_PARALLEL: 10
+    CYG_ROOT: C:/MinGW/msys/1.0
+  matrix:
+    - Platform: Cygwin32
+    - Platform: MinGW32
+      PlatformToolset: 4.8.5
+    - Platform: MinGW64
+      PlatformToolset: 4.8.5
+    - Platform: MinGW32
+      PlatformToolset: 5.3.0
+    - Platform: MinGW64
+      PlatformToolset: 5.3.0
+    - Platform: Win32
+      PlatformToolset: v90
+    - Platform: Win32
+      PlatformToolset: v100
+    - Platform: Win32
+      PlatformToolset: v110
+    - Platform: Win32
+      PlatformToolset: v120
+    - Platform: Win32
+      PlatformToolset: v140
+    - Platform: x64
+      PlatformToolset: v140
+matrix:
+  allow_failures:
+    - EVENT_ALLOW_FAILURE: 1
+
+init:
+  - 'echo Building libhttpserver %version% for Windows'
+  - 'echo System architecture: %PLATFORM%'
+  - 'echo Repo build branch is: %APPVEYOR_REPO_BRANCH%'
+  - 'echo Build folder is: %APPVEYOR_BUILD_FOLDER%'
+  - 'echo Repo build commit is: %APPVEYOR_REPO_COMMIT%'
+  - 'echo Cygwin root is: %CYG_ROOT%'
+install:
+  - C:\MinGW\bin\mingw-get install gcc g++ autotools autoconf automake msys-base msys-m4
+build_script:
+  - ps: |
+      $env:PATH="$env;C:\MinGW\msys\1.0\bin;C:\CYG_ROOT\bin;C:\MinGW\bin;$($env:PATH)"
+      bash -lc "echo 'C:\MinGW /mingw' > /etc/fstab"
+      $env:APPVEYOR_BUILD_FOLDER = $env:APPVEYOR_BUILD_FOLDER -replace "\\", "/"
+      bash -lc "exec 0</dev/null; exec 2>&1; cd $env:APPVEYOR_BUILD_FOLDER; bash -x ./bootstrap && mkdir -p build && cd build && ../configure && make"
diff --git a/configure.ac b/configure.ac
index 03e5634f..30f56fe1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -79,14 +79,14 @@ esac
 
 # Checks for header files.
 AC_HEADER_STDC
+
+AC_CHECK_HEADERS([sys/stat.h sys/types.h fcntl.h math.h errno.h limits.h stdio.h locale.h], [], [AC_MSG_ERROR([Compiling libhttpserver requires standard UNIX headers files])], [AC_INCLUDES_DEFAULT])
+
 AC_CHECK_HEADER([stdint.h],[],[AC_MSG_ERROR("stdint.h not found")])
 AC_CHECK_HEADER([inttypes.h],[],[AC_MSG_ERROR("inttypes.h not found")])
-AC_CHECK_HEADER([errno.h],[],[AC_MSG_ERROR("errno.h not found")])
 AC_CHECK_HEADER([unistd.h],[],[AC_MSG_ERROR("unistd.h not found")])
 AC_CHECK_HEADER([ctype.h],[],[AC_MSG_ERROR("cctype not found")])
 AC_CHECK_HEADER([regex.h],[],[AC_MSG_ERROR("regex.h not found")])
-AC_CHECK_HEADER([sys/stat.h],[],[AC_MSG_ERROR("sys/stat.h not found")])
-AC_CHECK_HEADER([sys/types.h],[],[AC_MSG_ERROR("sys/types.h not found")])
 AC_CHECK_HEADER([$NETWORK_HEADER],[],[AC_MSG_ERROR("$NETWORK_HEADER not found")])
 AC_CHECK_HEADER([signal.h],[],[AC_MSG_ERROR("signal.h not found")])