Index: src/libchcore/TTaskStatsSnapshot.cpp
===================================================================
diff -u -r294b7d63dfadb4e39fcbb52087983616981d00bd -r2a34de9ddfcfb4a1ed4c61ece641d37b91c23b6b
--- src/libchcore/TTaskStatsSnapshot.cpp	(.../TTaskStatsSnapshot.cpp)	(revision 294b7d63dfadb4e39fcbb52087983616981d00bd)
+++ src/libchcore/TTaskStatsSnapshot.cpp	(.../TTaskStatsSnapshot.cpp)	(revision 2a34de9ddfcfb4a1ed4c61ece641d37b91c23b6b)
@@ -23,6 +23,7 @@
 #include "stdafx.h"
 #include "TTaskStatsSnapshot.h"
 #include "MathFunctions.h"
+#include "EngineConstants.h"
 
 namespace chcore
 {
@@ -102,15 +103,18 @@
 			m_ullProcessedSize += spSubtaskStats->GetProcessedSize();
 			m_ullTotalSize += spSubtaskStats->GetTotalSize();
 
-			m_dTaskCountSpeed += spSubtaskStats->GetCountSpeed();
-			m_dTaskSizeSpeed += spSubtaskStats->GetSizeSpeed();
+			if(IsTaskRunning())
+			{
+				m_dTaskCountSpeed += spSubtaskStats->GetCountSpeed();
+				m_dTaskSizeSpeed += spSubtaskStats->GetSizeSpeed();
+			}
 		}
 
 		// we're treating each of the items as 4096 bytes object to process
 		// to have some balance between items' count and items' size in
 		// progress information
-		unsigned long long ullProcessed = AssumedFileEquivalentSize * m_ullProcessedCount + m_ullProcessedSize;
-		unsigned long long ullTotal = AssumedFileEquivalentSize * m_ullTotalCount + m_ullTotalSize;
+		unsigned long long ullProcessed = AssumedFileMinDataSize * m_ullProcessedCount + m_ullProcessedSize;
+		unsigned long long ullTotal = AssumedFileMinDataSize * m_ullTotalCount + m_ullTotalSize;
 
 		if (ullTotal != 0)
 			m_dCombinedProgress = Math::Div64(ullProcessed, ullTotal);