Index: src/libchcore/TSubTaskCopyMove.cpp
===================================================================
diff -u -r9b8cccbee0fcfeca28a112cc0253a7641f73f74f -ra5f396da5ed5ffb3fcd9fdf22afb5a7fd07e1ab8
--- src/libchcore/TSubTaskCopyMove.cpp	(.../TSubTaskCopyMove.cpp)	(revision 9b8cccbee0fcfeca28a112cc0253a7641f73f74f)
+++ src/libchcore/TSubTaskCopyMove.cpp	(.../TSubTaskCopyMove.cpp)	(revision a5f396da5ed5ffb3fcd9fdf22afb5a7fd07e1ab8)
@@ -151,6 +151,7 @@
 TSubTaskCopyMove::TSubTaskCopyMove(TSubTaskContext& tSubTaskContext) :
 	TSubTaskBase(tSubTaskContext)
 {
+	m_tSubTaskStats.SetSubOperationType(eSubOperation_Copying);
 }
 
 void TSubTaskCopyMove::Reset()
@@ -302,9 +303,15 @@
 	return TSubTaskBase::eSubResult_Continue;
 }
 
-void TSubTaskCopyMove::GetStatsSnapshot(TSubTaskStatsSnapshot& rStats) const
+void TSubTaskCopyMove::GetStatsSnapshot(TSubTaskStatsSnapshotPtr& spStats) const
 {
-	m_tSubTaskStats.GetSnapshot(rStats);
+	m_tSubTaskStats.GetSnapshot(spStats);
+	// if this subtask is not started yet, try to get the most fresh information for processing
+	if(!spStats->IsRunning() && spStats->GetTotalCount() == 0 && spStats->GetTotalSize() == 0)
+	{
+		spStats->SetTotalCount(GetContext().GetFilesCache().GetSize());
+		spStats->SetTotalSize(GetContext().GetFilesCache().CalculateTotalSize());
+	}
 }
 
 TBufferSizes::EBufferType TSubTaskCopyMove::GetBufferIndex(const TBufferSizes& rBufferSizes, const TFileInfoPtr& spFileInfo)