Index: source/common/locmap.c
===================================================================
--- source/common/locmap.c	(revision 259715)
+++ source/common/locmap.c	(working copy)
@@ -29,6 +29,7 @@
 #include "cstring.h"
 #include "cmemory.h"
 
+#if 0
 #if U_PLATFORM == U_PF_WINDOWS && defined(_MSC_VER) && (_MSC_VER >= 1500)
 /*
  * TODO: It seems like we should widen this to
@@ -40,6 +41,7 @@
  */
 #define USE_WINDOWS_LOCALE_API
 #endif
+#endif
 
 #ifdef USE_WINDOWS_LOCALE_API
 #include <windows.h>
Index: source/common/stringpiece.cpp
===================================================================
--- source/common/stringpiece.cpp	(revision 259715)
+++ source/common/stringpiece.cpp	(working copy)
@@ -68,6 +68,14 @@
 }
 
 
+/* Microsoft Visual Studio (even 2013) complains about redefinition of this
+ * static const class variable. However, the C++ standard states that this
+ * definition is correct. Perhaps there is a bug in the Microsoft compiler.
+ * This is not an issue on any other compilers (that we know of).
+ * Cygwin with MSVC 9.0 also complains here about redefinition.
+ */
+#if (!defined(_MSC_VER) || (_MSC_VER > 1800)) && !defined(CYGWINMSVC)
 const int32_t StringPiece::npos = 0x7fffffff;
+#endif
 
 U_NAMESPACE_END
Index: source/common/umutex.h
===================================================================
--- source/common/umutex.h	(revision 266014)
+++ source/common/umutex.h	(working copy)
@@ -320,7 +320,7 @@
 
 
 typedef struct UMutex {
-    UInitOnce         fInitOnce;
+    icu::UInitOnce         fInitOnce;
     CRITICAL_SECTION  fCS;
 } UMutex;
 
Index: source/common/wintz.c
===================================================================
--- source/common/wintz.c	(revision 266014)
+++ source/common/wintz.c	(working copy)
@@ -285,7 +285,7 @@
     tmpid[0] = 0;
 
     id = GetUserGeoID(GEOCLASS_NATION);
-    errorCode = GetGeoInfo(id,GEO_ISO2,ISOcode,3,0);
+    errorCode = GetGeoInfoA(id,GEO_ISO2,ISOcode,3,0);
 
     bundle = ures_openDirect(NULL, "windowsZones", &status);
     ures_getByKey(bundle, "mapTimezones", bundle, &status);
