Index: src/libchengine/TTaskDefinition.cpp
===================================================================
diff -u -N -r08717141ce5f6926116c298cbc9442094a45bb67 -redf1ada01d4339a99fa80c4da7edbb5823adde0e
--- src/libchengine/TTaskDefinition.cpp	(.../TTaskDefinition.cpp)	(revision 08717141ce5f6926116c298cbc9442094a45bb67)
+++ src/libchengine/TTaskDefinition.cpp	(.../TTaskDefinition.cpp)	(revision edf1ada01d4339a99fa80c4da7edbb5823adde0e)
@@ -27,6 +27,7 @@
 #include <boost/lexical_cast.hpp>
 #include "TTaskDefinition.h"
 #include "../libchcore/TCoreException.h"
+#include "EOperationTypesMapper.h"
 
 #define CURRENT_TASK_VERSION 1
 
@@ -184,11 +185,12 @@
 			m_pathDestinationPath.AppendSeparatorIfDoesNotExist();
 
 		// type of the operation
-		int iOperation = eOperation_None;
-		if (!rDataSrc.GetValue(_T("TaskDefinition.OperationType"), iOperation))
+		TString strOperation = L"copy";
+		if(!GetConfigValue(rDataSrc, _T("TaskDefinition.OperationType"), strOperation))
 			throw TCoreException(eErr_MissingXmlData, L"Missing TaskDefinition.OperationType", LOCATION);
 
-		m_tOperationPlan.SetOperationType((EOperationType)iOperation);
+		EOperationType eOperation = UnmapEnum<EOperationType>(strOperation);
+		m_tOperationPlan.SetOperationType(eOperation);
 
 		// and version of the task
 		if (!GetConfigValue(rDataSrc, _T("TaskDefinition.Version"), m_ullTaskVersion))
@@ -247,8 +249,7 @@
 		SetConfigValue(rConfig, _T("TaskDefinition.Filters"), m_afFilters);
 		SetConfigValue(rConfig, _T("TaskDefinition.DestinationPath"), m_pathDestinationPath);
 
-		int iOperation = m_tOperationPlan.GetOperationType();
-		SetConfigValue(rConfig, _T("TaskDefinition.OperationType"), iOperation);
+		SetConfigValue(rConfig, _T("TaskDefinition.OperationType"), MapEnum(m_tOperationPlan.GetOperationType()));
 
 		SetConfigValue(rConfig, _T("TaskDefinition.Version"), m_ullTaskVersion);