Index: src/libchcore/TTaskManager.cpp =================================================================== diff -u -N -rd32a79f0e9220bad2c6eeb5e8a986228b6e832fb -r0c5027d5173ab0daeba6aa6b735a2b11d4cd2164 --- src/libchcore/TTaskManager.cpp (.../TTaskManager.cpp) (revision d32a79f0e9220bad2c6eeb5e8a986228b6e832fb) +++ src/libchcore/TTaskManager.cpp (.../TTaskManager.cpp) (revision 0c5027d5173ab0daeba6aa6b735a2b11d4cd2164) @@ -370,7 +370,7 @@ TTaskStatsSnapshotPtr spStats(new TTaskStatsSnapshot); spTask->GetStatsSnapshot(spStats); - spStats->SetTaskID(rEntry.GetTaskID()); + spStats->SetTaskID(rEntry.GetObjectID()); if(spStats->IsTaskRunning() && spStats->GetTaskState()) ++stRunningTasks; @@ -460,6 +460,9 @@ ISerializerContainerPtr spContainer = m_spSerializer->GetContainer(_T("tasks")); m_tTasks.Load(spContainer); + // ensure that we assign nonexistent to new task IDs + m_stNextTaskID = m_tTasks.GetLastTaskID() + 1; + // clear all modifications of freshly loaded tasks (in case serializer does // not reset the modification state) m_tTasks.ClearModifications();