Index: src/ch/StringHelpers.cpp
===================================================================
diff -u -N -rd2b121c78f510b5384b8ef0ca80afbfd7f77fef7 -re912e0a6b456c2eed24bec7303a908d3ff0aa59a
--- src/ch/StringHelpers.cpp	(.../StringHelpers.cpp)	(revision d2b121c78f510b5384b8ef0ca80afbfd7f77fef7)
+++ src/ch/StringHelpers.cpp	(.../StringHelpers.cpp)	(revision e912e0a6b456c2eed24bec7303a908d3ff0aa59a)
@@ -58,6 +58,7 @@
 	return pszBuffer;
 }
 
+/*
 LPTSTR GetSizeString(__int64 llData, LPTSTR pszBuffer, size_t stMaxBufferSize, bool bStrict)
 {
 	if (llData < 0)
@@ -74,3 +75,21 @@
 
 	return pszBuffer;
 }
+*/
+
+LPTSTR GetSizeString(ull_t ullData, LPTSTR pszBuffer, size_t stMaxBufferSize, bool bStrict)
+{
+	if (ullData < 0)
+		ullData=0;
+
+	if (ullData >= 1258291200 && (!bStrict || (ullData % 1073741824) == 0))
+		_sntprintf(pszBuffer, stMaxBufferSize, _T("%.2f %s"), (double)(ullData/1073741824.0), GetResManager()->LoadString(IDS_GBYTE_STRING));
+	else if (ullData >= 1228800 && (!bStrict || (ullData % 1048576) == 0))
+		_sntprintf(pszBuffer, stMaxBufferSize, _T("%.2f %s"), (double)(ullData/1048576.0), GetResManager()->LoadString(IDS_MBYTE_STRING));
+	else if (ullData >= 1200 && (!bStrict || (ullData % 1024) == 0))
+		_sntprintf(pszBuffer, stMaxBufferSize, _T("%.2f %s"), (double)(ullData/1024.0), GetResManager()->LoadString(IDS_KBYTE_STRING));
+	else
+		_sntprintf(pszBuffer, stMaxBufferSize, _T("%I64u %s"), ullData, GetResManager()->LoadString(IDS_BYTE_STRING));
+
+	return pszBuffer;
+}