Index: src/ch/UpdateChecker.cpp
===================================================================
diff -u -N -r045540c818c374806d09742ef3d7a984d8d757d3 -rd0cfddc68b5ec4dc4e9b73b6f87aa97995c7cc54
--- src/ch/UpdateChecker.cpp	(.../UpdateChecker.cpp)	(revision 045540c818c374806d09742ef3d7a984d8d757d3)
+++ src/ch/UpdateChecker.cpp	(.../UpdateChecker.cpp)	(revision d0cfddc68b5ec4dc4e9b73b6f87aa97995c7cc54)
@@ -93,11 +93,7 @@
 	m_hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&CUpdateChecker::UpdateCheckThread, (void*)this, 0, NULL);
 	if(!m_hThread)
 	{
-		m_strLanguage.Empty();
-		m_strSite.Empty();
-		m_eResult = eResult_Undefined;
-		m_eUpdateChannel = UpdateVersionInfo::eStable;
-		m_bSendHeaders = true;
+		Cleanup();
 		return false;
 	}
 
@@ -120,9 +116,12 @@
 		m_hThread = NULL;
 	}
 
+	::ResetEvent(m_hKillEvent);
+
 	m_httpFile.Close();
 
 	::EnterCriticalSection(&m_cs);
+
 	m_strSite.Empty();
 	m_eUpdateChannel = UpdateVersionInfo::eStable;
 	m_strLanguage.Empty();
@@ -133,6 +132,8 @@
 	m_strDownloadAddress.Empty();
 	m_strReleaseNotes.Empty();
 	m_eResult = CUpdateChecker::eResult_Undefined;
+	m_bSendHeaders = true;
+
 	::LeaveCriticalSection(&m_cs);
 }
 
@@ -268,7 +269,7 @@
 		std::stringstream dataBuffer;
 
 		// open the connection and try to get to the file
-		std::wstring wstrUserAgent = pUpdateChecker->m_tUpdateHeaders.GetUserAgent();
+		std::wstring wstrUserAgent = pUpdateChecker->m_tUpdateHeaders.GetUserAgent((PCTSTR)pUpdateChecker->m_strLanguage, pUpdateChecker->m_eUpdateChannel);
 		std::wstring wstrHeaders;
 		if(pUpdateChecker->GetSendHeaders())
 			wstrHeaders = pUpdateChecker->m_tUpdateHeaders.GetHeaders((PCTSTR)pUpdateChecker->m_strLanguage, pUpdateChecker->m_eUpdateChannel);