Index: src/libchcore/TSubTaskArray.cpp =================================================================== diff -u -N -rd88274a4bbfd4ef005d44c4d179b7596cb627486 -r297ce850732d4243414c851df145ca97bd696baa --- src/libchcore/TSubTaskArray.cpp (.../TSubTaskArray.cpp) (revision d88274a4bbfd4ef005d44c4d179b7596cb627486) +++ src/libchcore/TSubTaskArray.cpp (.../TSubTaskArray.cpp) (revision 297ce850732d4243414c851df145ca97bd696baa) @@ -73,6 +73,7 @@ TSubTaskBase::ESubOperationResult TSubTasksArray::Execute(bool bRunOnlyEstimationSubTasks) { TSubTaskBase::ESubOperationResult eResult = TSubTaskBase::eSubResult_Continue; + TTaskBasicProgressInfo& rBasicProgressInfo = m_rSubTaskContext.GetTaskBasicProgressInfo(); size_t stSubOperationIndex = m_rSubTaskContext.GetTaskBasicProgressInfo().GetSubOperationIndex(); for(; stSubOperationIndex < m_vSubTasks.size() && eResult == TSubTaskBase::eSubResult_Continue; ++stSubOperationIndex) @@ -92,6 +93,11 @@ } eResult = spCurrentSubTask->Exec(); + if(eResult == TSubTaskBase::eSubResult_Continue) + { + // reset progress for each subtask + rBasicProgressInfo.SetCurrentIndex(0); + } } return eResult;