Index: /branches/rel_ag_9_4_5/windows/Include/ProxyTransport.h
===================================================================
--- /branches/rel_ag_9_4_5/windows/Include/ProxyTransport.h	(revision 20632)
+++ /branches/rel_ag_9_4_5/windows/Include/ProxyTransport.h	(working copy)
@@ -214,7 +214,7 @@
 			}
 			if(ie_proxy_config.lpszProxyBypass && lpRemoteAddr)
 			{
-				Log(LOG_INFO, (L"QueryActiveUserIEProxyConfig lpszProxyBypass:bypass:%s ,remote address:%s\n",ie_proxy_config.lpszProxyBypass,CA2W(lpRemoteAddr)));
+				Log(LOG_INFO, (L"QueryActiveUserIEProxyConfig lpszProxyBypass:bypass:%s ,remote address:%s\n",ie_proxy_config.lpszProxyBypass,(LPCWSTR)CA2W(lpRemoteAddr)));
 				if(IncludeInBypass(ie_proxy_config.lpszProxyBypass,CA2W(lpRemoteAddr)))
 				{
 					proxy_config.bInByPass = TRUE;
Index: /branches/rel_ag_9_4_5/windows/Include/WTL/atlapp.h
===================================================================
--- /branches/rel_ag_9_4_5/windows/Include/WTL/atlapp.h	(revision 20632)
+++ /branches/rel_ag_9_4_5/windows/Include/WTL/atlapp.h	(working copy)
@@ -573,7 +573,20 @@
 	inline bool IsCommCtrl6()
 	{
 		DWORD dwMajor = 0, dwMinor = 0;
-		HRESULT hRet = ATL::AtlGetCommCtrlVersion(&dwMajor, &dwMinor);
+		HRESULT hRet = E_FAIL;
+		HMODULE hMod = ::LoadLibraryW(L"comctl32.dll");
+		if(hMod != NULL)
+		{
+			typedef HRESULT (CALLBACK* PFNDLLGETVERSION)(DLLVERSIONINFO*);
+			PFNDLLGETVERSION pfn = (PFNDLLGETVERSION)::GetProcAddress(hMod, "DllGetVersion");
+			if(pfn != NULL)
+			{
+				DLLVERSIONINFO dvi = { sizeof(DLLVERSIONINFO) };
+				hRet = pfn(&dvi);
+				if(SUCCEEDED(hRet)) { dwMajor = dvi.dwMajorVersion; dwMinor = dvi.dwMinorVersion; }
+			}
+			::FreeLibrary(hMod);
+		}
 		return (SUCCEEDED(hRet) && (dwMajor >= 6));
 	}
 
Index: /branches/rel_ag_9_4_5/windows/Include/hardwareid.h
===================================================================
--- /branches/rel_ag_9_4_5/windows/Include/hardwareid.h	(revision 20632)
+++ /branches/rel_ag_9_4_5/windows/Include/hardwareid.h	(working copy)
@@ -8,7 +8,7 @@
 #define USE_PERMANENT_MAC		1
 #define	MD5_HASH_LEN			16
 
-#define ARRAY_KEY              L"Software\\"VPN_DEFAULT_FOLDER_NAME
+#define ARRAY_KEY              L"Software\\ "VPN_DEFAULT_FOLDER_NAME
 #define ADAPTER_MAC_IGNORE_LIST_KEY_NAME	L"IgnoreAdaptersList" //REG_MULTI_SZ
 #define ADAPTER_MAC_IGNORE_PPP_KEY_NAME		L"IgnorePPPAdapters" //REG_DWORD
 
Index: /branches/rel_ag_9_4_5/windows/SecurityGateway/AnalyzeChangePwdModule.cpp
===================================================================
--- /branches/rel_ag_9_4_5/windows/SecurityGateway/AnalyzeChangePwdModule.cpp	(revision 20632)
+++ /branches/rel_ag_9_4_5/windows/SecurityGateway/AnalyzeChangePwdModule.cpp	(working copy)
@@ -70,7 +70,7 @@
 
 	strRequest.erase();
 	strRequest  = "POST ";
-	strRequest += "/prx/000/http/localhost/passchange";// AnalyzeRequest.GetLocation();
+	strRequest += AnalyzeRequest.GetLocation();
 	strRequest += " HTTP/1.1\r\n";
 	strRequest += "Host: ";
 	strRequest += AnalyzeRequest.GetHost();
Index: /branches/rel_ag_9_4_5/windows/SecurityGateway/DialogSMX.cpp
===================================================================
--- /branches/rel_ag_9_4_5/windows/SecurityGateway/DialogSMX.cpp	(revision 20632)
+++ /branches/rel_ag_9_4_5/windows/SecurityGateway/DialogSMX.cpp	(working copy)
@@ -314,7 +314,7 @@
 void CDialogSMX::GenMatrix()
 {
 #ifdef VPN_OPENSSL_1_0_2_C
-	Log(LOG_INFO, (L"CDialogSMX: GenMatrix mlen:%d   loginid:%s\n",CSmxClientAPI::MATRIX_LENGTH,CA2W(m_Matrix.chLoginID)));
+	Log(LOG_INFO, (L"CDialogSMX: GenMatrix mlen:%d   loginid:%s\n",CSmxClientAPI::MATRIX_LENGTH,(LPCWSTR)CA2W(m_Matrix.chLoginID)));
 	LPTSTR lpszMatrix = new TCHAR[CSmxClientAPI::MATRIX_LENGTH];
 	char check[4]={0};
 	itoa(m_Matrix.ccheck,check,10);
Index: /branches/rel_ag_9_4_5/windows/SecurityGateway/SecurityGateway.vcxproj
===================================================================
--- /branches/rel_ag_9_4_5/windows/SecurityGateway/SecurityGateway.vcxproj	(revision 20632)
+++ /branches/rel_ag_9_4_5/windows/SecurityGateway/SecurityGateway.vcxproj	(working copy)
@@ -141,7 +141,7 @@
       <ProgramDatabaseFile>..\out\pdb\$(TargetName).pdb</ProgramDatabaseFile>
       <ModuleDefinitionFile>SecurityGateway.def</ModuleDefinitionFile>
       <ImportLibrary>..\Lib\Release\SecurityGateway.lib</ImportLibrary>
-      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);ws2_32.lib</AdditionalDependencies>
+      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;legacy_stdio_definitions.lib;%(AdditionalDependencies);ws2_32.lib</AdditionalDependencies>
       <LinkTimeCodeGeneration>
       </LinkTimeCodeGeneration>
     </Link>
@@ -166,7 +166,7 @@
       <ProgramDatabaseFile>..\out\pdb\$(TargetName)_x64.pdb</ProgramDatabaseFile>
       <ModuleDefinitionFile>SecurityGateway.def</ModuleDefinitionFile>
       <ImportLibrary>..\Lib\Release64\SecurityGateway.lib</ImportLibrary>
-      <AdditionalDependencies>..\Lib\Release64\msocket.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);ws2_32.lib</AdditionalDependencies>
+      <AdditionalDependencies>..\Lib\Release64\msocket.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;legacy_stdio_definitions.lib;%(AdditionalDependencies);ws2_32.lib</AdditionalDependencies>
       <LinkTimeCodeGeneration>
       </LinkTimeCodeGeneration>
       <IgnoreSpecificDefaultLibraries>
Index: /branches/rel_ag_9_4_5/windows/SecurityGateway/dllmain.cpp
===================================================================
--- /branches/rel_ag_9_4_5/windows/SecurityGateway/dllmain.cpp	(revision 20632)
+++ /branches/rel_ag_9_4_5/windows/SecurityGateway/dllmain.cpp	(working copy)
@@ -421,4 +421,15 @@
 		strncpy(response, strInfo.c_str(), strInfo.length());
 	}
 	return WG_ERROR_SUCCESS;
+}
+
+// Compatibility shim for libeay32.lib / SmxClientAPI.lib compiled with VS2013 or earlier.
+// VS2015+ removed __iob_func from the CRT; legacy_stdio_definitions.lib does not restore it.
+extern "C" FILE* __cdecl __iob_func(void)
+{
+    static FILE iob[3];
+    iob[0] = *stdin;
+    iob[1] = *stdout;
+    iob[2] = *stderr;
+    return iob;
 }
\ No newline at end of file
