Index: src/libchcore/TTaskManager.cpp
===================================================================
diff -u -N -r9479911a096555a7504c5c8a8eaee83ecb63440c -rd32a79f0e9220bad2c6eeb5e8a986228b6e832fb
--- src/libchcore/TTaskManager.cpp	(.../TTaskManager.cpp)	(revision 9479911a096555a7504c5c8a8eaee83ecb63440c)
+++ src/libchcore/TTaskManager.cpp	(.../TTaskManager.cpp)	(revision d32a79f0e9220bad2c6eeb5e8a986228b6e832fb)
@@ -30,13 +30,14 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 // TTaskManager members
-TTaskManager::TTaskManager(const ISerializerPtr& spSerializer, IFeedbackHandlerFactory* piFeedbackHandlerFactory) :
+TTaskManager::TTaskManager(const ISerializerFactoryPtr& spSerializerFactory, IFeedbackHandlerFactory* piFeedbackHandlerFactory) :
 	m_stNextTaskID(NoTaskID + 1),
-	m_spSerializer(spSerializer),
+	m_spSerializerFactory(spSerializerFactory),
 	m_piFeedbackFactory(piFeedbackHandlerFactory)
 {
-	if(!piFeedbackHandlerFactory)
+	if(!piFeedbackHandlerFactory || !spSerializerFactory)
 		THROW_CORE_EXCEPTION(eErr_InvalidPointer);
+	m_spSerializer = m_spSerializerFactory->CreateSerializer(ISerializerFactory::eObj_TaskManager);
 }
 
 TTaskManager::~TTaskManager()
@@ -47,7 +48,7 @@
 TTaskPtr TTaskManager::CreateTask(const TTaskDefinition& tTaskDefinition)
 {
 	IFeedbackHandler* piHandler = CreateNewFeedbackHandler();
-	ISerializerPtr spSerializer;// = m_spSerializer->CreateNewTaskSerializer(tTaskDefinition.GetTaskName());
+	ISerializerPtr spSerializer = m_spSerializerFactory->CreateSerializer(ISerializerFactory::eObj_Task, tTaskDefinition.GetTaskName());
 
 	TTaskPtr spTask(new TTask(spSerializer, piHandler));
 	spTask->SetLogPath(CreateTaskLogPath(tTaskDefinition.GetTaskName()));
@@ -463,23 +464,21 @@
 	// not reset the modification state)
 	m_tTasks.ClearModifications();
 
-/*
 	for(size_t stIndex = 0; stIndex < m_tTasks.GetCount(); ++stIndex)
 	{
 		TTaskInfoEntry& rEntry = m_tTasks.GetAt(stIndex);
 
 		if(!rEntry.GetTask())
 		{
 			IFeedbackHandler* piHandler = CreateNewFeedbackHandler();
-			ITaskSerializerPtr spSerializer = m_spSerializer->CreateExistingTaskSerializer(rEntry.GetTaskSerializeLocation());
+			ISerializerPtr spSerializer(m_spSerializerFactory->CreateSerializer(ISerializerFactory::eObj_Task, rEntry.GetTaskSerializeLocation().ToWString()));
 
 			TTaskPtr spTask(new TTask(spSerializer, piHandler));
 			spTask->Load();
 
 			rEntry.SetTask(spTask);
 		}
 	}
-*/
 }
 TSmartPath TTaskManager::CreateTaskLogPath(const TString& strTaskUuid) const
 {