Index: src/ch/UpdateResponse.cpp
===================================================================
diff -u -N -r50ad2dc9f0b42ba432bb54e4a042582277410773 -r1f27a2022090cf7aaf827a3f1ad90d6fe0038518
--- src/ch/UpdateResponse.cpp	(.../UpdateResponse.cpp)	(revision 50ad2dc9f0b42ba432bb54e4a042582277410773)
+++ src/ch/UpdateResponse.cpp	(.../UpdateResponse.cpp)	(revision 1f27a2022090cf7aaf827a3f1ad90d6fe0038518)
@@ -41,13 +41,21 @@
 	std::wstring wstrReleaseDate;
 	std::wstring wstrReleaseNotes;
 
+	// add version information; note that assumption here that we receive version informations
+	// sorted by stability (decreasing) - that way we only present the user suggestions to download
+	// newest versions with highest stability
+	unsigned long long ullLastVersionNumber = 0;
 	for(const wiptree::value_type& node : pt.get_child(L"UpdateInfo"))
 	{
 		try
 		{
 			UpdateVersionInfo::EVersionType eType = ParseVersionName(node.first);
 			UpdateVersionInfo vi = ParseVersionInfo(node.second);
-			m_tVersions.Add(eType, std::move(vi));
+
+			if(vi.GetFullNumericVersion() > ullLastVersionNumber)
+				m_tVersions.Add(eType, std::move(vi));
+
+			ullLastVersionNumber = vi.GetFullNumericVersion();
 		}
 		catch(const std::exception&)	// ignore exceptions from version parsing code
 		{