Index: src/libchcore/TSubTaskStatsInfo.cpp
===================================================================
diff -u -N -r79399818d01f20d3a83766543e98ef5f0ee3de38 -r7d59ab9183c933f2fc2682a95fb5d26cf2f952d7
--- src/libchcore/TSubTaskStatsInfo.cpp	(.../TSubTaskStatsInfo.cpp)	(revision 79399818d01f20d3a83766543e98ef5f0ee3de38)
+++ src/libchcore/TSubTaskStatsInfo.cpp	(.../TSubTaskStatsInfo.cpp)	(revision 7d59ab9183c933f2fc2682a95fb5d26cf2f952d7)
@@ -32,21 +32,6 @@
 BEGIN_CHCORE_NAMESPACE
 
 ///////////////////////////////////////////////////////////////////////////////////
-// class TSubTaskProcessingGuard
-TSubTaskProcessingGuard::TSubTaskProcessingGuard(TSubTaskStatsInfo& rStats) :
-	m_rStats(rStats)
-{
-	rStats.MarkAsRunning();
-	rStats.EnableTimeTracking();
-}
-
-TSubTaskProcessingGuard::~TSubTaskProcessingGuard()
-{
-	m_rStats.DisableTimeTracking();
-	m_rStats.MarkAsNotRunning();
-}
-
-///////////////////////////////////////////////////////////////////////////////////
 // class TSubTaskStatsInfo
 
 TSubTaskStatsInfo::TSubTaskStatsInfo() :
@@ -279,9 +264,12 @@
 void TSubTaskStatsInfo::UpdateTime(boost::upgrade_lock<boost::shared_mutex>& lock) const
 {
 	boost::upgrade_to_unique_lock<boost::shared_mutex> lock_upgraded(lock);
-	m_tTimer.Modify().Tick();
-	m_tSizeSpeed.Modify().AddSample(0, m_tTimer.Get().GetLastTimestamp());
-	m_tCountSpeed.Modify().AddSample(0, m_tTimer.Get().GetLastTimestamp());
+	if (m_tTimer.Get().IsRunning())
+	{
+		m_tTimer.Modify().Tick();
+		m_tSizeSpeed.Modify().AddSample(0, m_tTimer.Get().GetLastTimestamp());
+		m_tCountSpeed.Modify().AddSample(0, m_tTimer.Get().GetLastTimestamp());
+	}
 }
 
 void TSubTaskStatsInfo::Store(ISerializerRowData& rRowData) const