diff --git a/project/VS2010Express/XBMC.vcxproj b/project/VS2010Express/XBMC.vcxproj
index 7e873102bb5c6..dd310fdd45307 100644
--- a/project/VS2010Express/XBMC.vcxproj
+++ b/project/VS2010Express/XBMC.vcxproj
@@ -1460,6 +1460,7 @@
+
Create
Create
@@ -2147,6 +2148,7 @@
+
diff --git a/project/VS2010Express/XBMC.vcxproj.filters b/project/VS2010Express/XBMC.vcxproj.filters
index 9f19d9fc19791..840fb87be2588 100644
--- a/project/VS2010Express/XBMC.vcxproj.filters
+++ b/project/VS2010Express/XBMC.vcxproj.filters
@@ -3092,6 +3092,9 @@
utils
+
+ win32
+
network\httprequesthandler
@@ -6021,6 +6024,9 @@
cores
+
+ win32
+
filesystem
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index 840d0fcbca111..87b19e18a7fb2 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -734,6 +734,10 @@ bool CApplication::Create()
return false;
}
+#ifdef TARGET_WINDOWS
+ CWIN32Util::SetThreadLocalLocale(true); // enable independent locale for each thread, see https://connect.microsoft.com/VisualStudio/feedback/details/794122
+#endif // TARGET_WINDOWS
+
// start the AudioEngine
if (!CAEFactory::StartEngine())
{
diff --git a/xbmc/LangInfo.cpp b/xbmc/LangInfo.cpp
index 208cd2ccd6a77..9589a5f7f31d5 100644
--- a/xbmc/LangInfo.cpp
+++ b/xbmc/LangInfo.cpp
@@ -198,6 +198,7 @@ void CLangInfo::CRegion::SetGlobalLocale()
strLocale = "C";
}
+ g_langInfo.m_locale = current_locale; // TODO: move to CLangInfo class
locale::global(current_locale);
#endif
g_charsetConverter.resetSystemCharset();
@@ -421,6 +422,8 @@ void CLangInfo::SetDefaults()
// Set the default region, we may be unable to load langinfo.xml
m_currentRegion=&m_defaultRegion;
+
+ m_locale = std::locale::classic();
m_languageCodeGeneral = "eng";
}
diff --git a/xbmc/LangInfo.h b/xbmc/LangInfo.h
index aa499fde8af12..6c9898c41fde2 100644
--- a/xbmc/LangInfo.h
+++ b/xbmc/LangInfo.h
@@ -25,6 +25,7 @@
#include