Index: src/ch/MainWnd.cpp
===================================================================
diff -u -N -r2996cfa8b8db93f1b06a4e5f142ab74a23f67235 -r044d0e17cdedf3055202486a2235e1a3c8dd6e56
--- src/ch/MainWnd.cpp	(.../MainWnd.cpp)	(revision 2996cfa8b8db93f1b06a4e5f142ab74a23f67235)
+++ src/ch/MainWnd.cpp	(.../MainWnd.cpp)	(revision 044d0e17cdedf3055202486a2235e1a3c8dd6e56)
@@ -505,26 +505,25 @@
 	}
 
 	// create new task
-	CTaskPtr spTask = m_tasks.CreateTask();
-	spTask->SetDestPath(strDstPath);
-	CClipboardEntryPtr spEntry;
+	TTaskDefinition tTaskDefinition;
+	tTaskDefinition.SetDestinationPath(strDstPath);
 
 	// files
 	for(int i = 0; i < astrFiles.GetSize(); i++)
 	{
-		spEntry.reset(new CClipboardEntry);
-		spEntry->SetPath(astrFiles.GetAt(i));
-		spTask->AddClipboardData(spEntry);
+		tTaskDefinition.AddSourcePath(astrFiles.GetAt(i));
 	}
 
-	spTask->SetOperationType(bMove ? eOperation_Move : eOperation_Copy);
+	tTaskDefinition.SetOperationType(bMove ? eOperation_Move : eOperation_Copy);
 
-	// special status
 	TTaskBasicConfiguration tTaskConfig;
 	tTaskConfig.SetCreateEmptyFiles(bOnlyCreate != FALSE);
 	tTaskConfig.SetCreateOnlyDirectories(bForceDirectories != FALSE);
 	tTaskConfig.SetIgnoreDirectories(bIgnoreDirs != FALSE);
 
+	CTaskPtr spTask = m_tasks.CreateTask();
+
+	spTask->SetTaskDefinition(tTaskDefinition);
 	spTask->SetTaskBasicConfiguration(tTaskConfig);
 			
 	// set some stuff related with task
@@ -591,19 +590,23 @@
 			rConfig.set_string(PP_RECENTPATHS, (*it), icpf::property::action_add);
 		}
 
-		// new task
-		CTaskPtr spTask = m_tasks.CreateTask();
-		spTask->SetDestPath(dlg.m_ccData.m_strDestPath);
-		CClipboardEntryPtr spEntry;
-		for (int i=0;i<dlg.m_ccData.m_astrPaths.GetSize();i++)
+
+		TTaskDefinition tTaskDefinition;
+
+		tTaskDefinition.SetOperationType((dlg.m_ccData.m_iOperation == 1) ? eOperation_Move : eOperation_Copy);
+
+		tTaskDefinition.SetDestinationPath(dlg.m_ccData.m_strDestPath);
+
+		for (int iIndex = 0; iIndex < dlg.m_ccData.m_astrPaths.GetSize(); iIndex++)
 		{
-			spEntry.reset(new CClipboardEntry);
-			spEntry->SetPath(dlg.m_ccData.m_astrPaths.GetAt(i));
-			spTask->AddClipboardData(spEntry);
+			tTaskDefinition.AddSourcePath(dlg.m_ccData.m_astrPaths.GetAt(iIndex));
 		}
-		
-		spTask->SetOperationType((dlg.m_ccData.m_iOperation == 1) ? eOperation_Move : eOperation_Copy);
 
+		// new task
+		CTaskPtr spTask = m_tasks.CreateTask();
+
+		spTask->SetTaskDefinition(tTaskDefinition);
+		
 		// special status
 		TTaskBasicConfiguration tTaskConfig;
 		tTaskConfig.SetCreateEmptyFiles(dlg.m_ccData.m_bCreateStructure);