diff -Naur icu-svn-58.1.orig/source/common/unicode/ptypes.h icu-svn-58.1.patched/source/common/unicode/ptypes.h
--- icu-svn-58.1.orig/source/common/unicode/ptypes.h	2016-06-15 21:58:17.567338000 +0300
+++ icu-svn-58.1.patched/source/common/unicode/ptypes.h	2016-10-22 12:52:07.436470800 +0300
@@ -123,6 +123,28 @@
 #endif
 #endif
 
+#if defined(_MSC_VER) && _MSC_VER==1500
+
+#if _MSC_VER > 1000
+#pragma once
+#endif
+
+#include <limits.h>
+
+#define INT8_MIN     ((int8_t)_I8_MIN)
+#define INT8_MAX     _I8_MAX
+#define INT16_MIN    ((int16_t)_I16_MIN)
+#define INT16_MAX    _I16_MAX
+#define INT32_MIN    ((int32_t)_I32_MIN)
+#define INT32_MAX    _I32_MAX
+#define INT64_MIN    ((int64_t)_I64_MIN)
+#define INT64_MAX    _I64_MAX
+#define UINT8_MAX    _UI8_MAX
+#define UINT16_MAX   _UI16_MAX
+#define UINT32_MAX   _UI32_MAX
+#define UINT64_MAX   _UI64_MAX
+#endif
+
 #endif /* U_HAVE_STDINT_H / U_HAVE_INTTYPES_H */
 
 #endif /* _PTYPES_H */
diff -Naur icu-svn-58.1.orig/source/runConfigureICU icu-svn-58.1.patched/source/runConfigureICU
--- icu-svn-58.1.orig/source/runConfigureICU	2016-06-15 21:58:17.567338000 +0300
+++ icu-svn-58.1.patched/source/runConfigureICU	2016-10-22 12:52:07.438470900 +0300
@@ -28,6 +28,7 @@
 Options: -h, --help         Print this message and exit
          --enable-debug     Enable support for debugging
          --disable-release  Disable presetting optimization flags
+		 --static-runtime   Use a statically linked C/C++ runtime (Cygwin/MSVC only)
 
 If you want to add custom CFLAGS or CXXFLAGS or similar, provide them _before_
 the runConfigureICU command:
@@ -72,6 +73,7 @@
 platform=
 debug=0
 release=1
+static_runtime=0
 
 while test $# -ne 0
 do
@@ -87,6 +89,9 @@
         release=0
         OPTS="$OPTS --disable-release"
         ;;
+	--static-runtime)
+        static_runtime=1
+        ;;
     *)
         platform="$1"
         shift
@@ -259,15 +264,21 @@
         RELEASE_CXXFLAGS='-O3'
         ;;
     Cygwin/MSVC)
+		if [ "${static_runtime}" = "0" ]; then
+			RUNTIME_LINKER_OPTION='MD'
+		else
+			RUNTIME_LINKER_OPTION='MT'
+		fi
+		RUNTIME_LINKER_FLAG='/'${RUNTIME_LINKER_OPTION}
         THE_OS="Windows with Cygwin"
         THE_COMP="Microsoft Visual C++"
         CC=cl; export CC
         CXX=cl; export CXX
-        RELEASE_CFLAGS='-Gy -MD'
-        RELEASE_CXXFLAGS='-Gy -MD'
-        DEBUG_CFLAGS='-Zi -MDd'
-        DEBUG_CXXFLAGS='-Zi -MDd'
-        DEBUG_LDFLAGS='-DEBUG'
+        RELEASE_CFLAGS='/Gy '${RUNTIME_LINKER_FLAG}
+        RELEASE_CXXFLAGS='/Gy '${RUNTIME_LINKER_FLAG}
+        DEBUG_CFLAGS='/Zi '${RUNTIME_LINKER_FLAG}d' /Fdicu'${RUNTIME_LINKER_OPTION}d
+        DEBUG_CXXFLAGS='/Zi '${RUNTIME_LINKER_FLAG}d' /Fdicu'${RUNTIME_LINKER_OPTION}d
+        DEBUG_LDFLAGS='/DEBUG'
         ;;
     Cygwin/MSVC2005)
         THE_OS="Windows with Cygwin"
diff -Naur icu-svn-58.1.orig/source/test/cintltst/spooftest.c icu-svn-58.1.patched/source/test/cintltst/spooftest.c
--- icu-svn-58.1.orig/source/test/cintltst/spooftest.c	2016-09-21 00:06:55.670090000 +0300
+++ icu-svn-58.1.patched/source/test/cintltst/spooftest.c	2016-11-01 15:28:00.472688400 +0200
@@ -469,16 +469,20 @@
      * uspoof_check2 variants
      */
     TEST_SETUP
-        int32_t result1, result2;
+        int32_t i, result1, result2;
         char utf8buf[200];
+		USpoofCheckResult* checkResult;
+		const UChar* tests[] = { goodLatin, scMixed, scLatin,
+                goodCyrl, goodGreek, lll_Latin_a, lll_Latin_b, han_Hiragana };
+
+		URestrictionLevel restrictionLevel;
+		
         uspoof_setChecks(sc, USPOOF_ALL_CHECKS | USPOOF_AUX_INFO, &status);
-        USpoofCheckResult* checkResult = uspoof_openCheckResult(&status);
+		checkResult = uspoof_openCheckResult(&status);
+		
         TEST_ASSERT_SUCCESS(status);
 
-        const UChar* tests[] = { goodLatin, scMixed, scLatin,
-                goodCyrl, goodGreek, lll_Latin_a, lll_Latin_b, han_Hiragana };
-
-        for (int32_t i=0; i<UPRV_LENGTHOF(tests); i++) {
+        for (i=0; i<UPRV_LENGTHOF(tests); i++) {
             const UChar* str = tests[i];
 
             // Basic test
@@ -497,7 +501,7 @@
             TEST_ASSERT_EQ(result1 & USPOOF_ALL_CHECKS, uspoof_getCheckResultChecks(checkResult, &status));
 
             // Restriction level from checkResult should be same as that from bitmask
-            URestrictionLevel restrictionLevel = uspoof_getCheckResultRestrictionLevel(checkResult, &status);
+            restrictionLevel = uspoof_getCheckResultRestrictionLevel(checkResult, &status);
             TEST_ASSERT_EQ(result1 & restrictionLevel, restrictionLevel);
 
             // UTF8 endpoint
