Index: src/ch/UpdateChecker.cpp
===================================================================
diff -u -N -ra3019fc815b1cf8697777e432338a3b8eb0cb820 -r53cb62334fc09a404726d92af726eca6141ad177
--- src/ch/UpdateChecker.cpp	(.../UpdateChecker.cpp)	(revision a3019fc815b1cf8697777e432338a3b8eb0cb820)
+++ src/ch/UpdateChecker.cpp	(.../UpdateChecker.cpp)	(revision 53cb62334fc09a404726d92af726eca6141ad177)
@@ -22,17 +22,31 @@
 		if(!pHttpFile->SendRequest())
 			return eResult_Error;
 
-		char szBuf[256];
-		UINT uiRD = pHttpFile->Read(szBuf, 255);
+		char szBuf[512];
+		UINT uiRD = pHttpFile->Read(szBuf, 511);
 		if(uiRD > 0)
 			szBuf[uiRD] = _T('\0');
 
 		// convert text to unicode
 		CA2CT a2ct(szBuf);
 
+		CString strVersion = a2ct;
+		CString strNumericVersion;
+		CString strReadableVersion;
+		int iPos = strVersion.Find(_t('|'));
+		if(iPos != -1)
+		{
+			strNumericVersion = strVersion.Mid(0, iPos);
+			strReadableVersion = strVersion.Mid(iPos + 1);
+		}
+		else
+			strNumericVersion = strVersion;
+
+		m_strRemoteVersion = strReadableVersion;
+
 		// and compare to current version
 		ushort_t usVer[4];
-		if(_stscanf(a2ct, _t("%hu.%hu.%hu.%hu"), &usVer[0], &usVer[1], &usVer[2], &usVer[3]) != 4)
+		if(_stscanf(strNumericVersion, _t("%hu.%hu.%hu.%hu"), &usVer[0], &usVer[1], &usVer[2], &usVer[3]) != 4)
 		{
 			TRACE(_T("Error parsing retrieved version number."));
 			return eResult_Error;
@@ -42,11 +56,11 @@
 		ull_t ullSiteVersion = ((ull_t)usVer[0]) << 48 | ((ull_t)usVer[1]) << 32 | ((ull_t)usVer[2]) << 16 | ((ull_t)usVer[3]);
 
 		if(ullCurrentVersion < ullSiteVersion)
-			return eResult_VersionOlder;
+			return eResult_VersionNewer;
 		else if(ullCurrentVersion == ullSiteVersion)
 			return eResult_VersionCurrent;
 		else
-			return eResult_VersionNewer;
+			return eResult_VersionOlder;
 	}
 	catch(CInternetException* e)
 	{