diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp
index edd19149f16ccebe8b66f9d50a3331c69288fbb0..61922da380d2ca4eafb78bba7ddf93ac6fce4367 100644
--- a/indra/llcommon/llsys.cpp
+++ b/indra/llcommon/llsys.cpp
@@ -144,11 +144,18 @@ LLOSInfo::LLOSInfo() :
 
 #if LL_WINDOWS
 
-	if (IsWindowsVersionOrGreater(10, 0, 0))
+	if (IsWindows10OrGreater())
 	{
 		mMajorVer = 10;
 		mMinorVer = 0;
-		mOSStringSimple = "Microsoft Windows 10 ";
+		if (IsWindowsServer())
+		{
+			mOSStringSimple = "Windows Server ";
+		}
+		else
+		{
+			mOSStringSimple = "Microsoft Windows 10 ";
+		}
 	}
 	else if (IsWindows8Point1OrGreater())
 	{
@@ -1316,7 +1323,14 @@ BOOL gunzip_file(const std::string& srcfile, const std::string& dstfile)
 	LLFILE *dst = NULL;
 	S32 bytes = 0;
 	tmpfile = dstfile + ".t";
-	src = gzopen(srcfile.c_str(), "rb");
+
+#if LL_WINDOWS
+	std::wstring utf16filename = ll_convert_string_to_wide(srcfile);
+	src = gzopen_w(utf16filename.c_str(), "rb");
+#else
+	src = gzopen(srcfile.c_str(), "rb");/* Flawfinder: ignore */
+#endif
+	
 	if (! src) goto err;
 	dst = LLFile::fopen(tmpfile, "wb");		/* Flawfinder: ignore */
 	if (! dst) goto err;
@@ -1350,7 +1364,14 @@ BOOL gzip_file(const std::string& srcfile, const std::string& dstfile)
 	LLFILE *src = NULL;
 	S32 bytes = 0;
 	tmpfile = dstfile + ".t";
-	dst = gzopen(tmpfile.c_str(), "wb");		/* Flawfinder: ignore */
+
+#if LL_WINDOWS
+	std::wstring utf16filename = ll_convert_string_to_wide(tmpfile);
+	dst = gzopen_w(utf16filename.c_str(), "wb");
+#else
+	dst = gzopen(tmpfile.c_str(), "wb");/* Flawfinder: ignore */
+#endif
+	
 	if (! dst) goto err;
 	src = LLFile::fopen(srcfile, "rb");		/* Flawfinder: ignore */
 	if (! src) goto err;