Index: src/libchcore/TSubTaskBase.cpp
===================================================================
diff -u -N -r25b3c85ea493809ee084271d5101a015d349da95 -rd88274a4bbfd4ef005d44c4d179b7596cb627486
--- src/libchcore/TSubTaskBase.cpp	(.../TSubTaskBase.cpp)	(revision 25b3c85ea493809ee084271d5101a015d349da95)
+++ src/libchcore/TSubTaskBase.cpp	(.../TSubTaskBase.cpp)	(revision d88274a4bbfd4ef005d44c4d179b7596cb627486)
@@ -66,13 +66,19 @@
 	{
 		size_t stSrcIndex = spFileInfo->GetSrcIndex();
 
-		if (!(iFlags & 0x01) && stSrcIndex != std::numeric_limits<size_t>::max())
+		if(!(iFlags & 0x01) && stSrcIndex != std::numeric_limits<size_t>::max())
 		{
 			// generate new dest name
 			if(!rSourcePathsInfo.GetAt(stSrcIndex)->IsDestinationPathSet())
 			{
-				TSmartPath pathSubst = FindFreeSubstituteName(spFileInfo->GetFullFilePath(), pathDst);
-				rSourcePathsInfo.GetAt(stSrcIndex)->SetDestinationPath(pathSubst);
+				// generate something - if dest folder == src folder - search for copy
+				if(pathDst == spFileInfo->GetFullFilePath().GetFileRoot())
+				{
+					TSmartPath pathSubst = FindFreeSubstituteName(spFileInfo->GetFullFilePath(), pathDst);
+					rSourcePathsInfo.GetAt(stSrcIndex)->SetDestinationPath(pathSubst);
+				}
+				else
+					rSourcePathsInfo.GetAt(stSrcIndex)->SetDestinationPath(spFileInfo->GetFullFilePath().GetFileName());
 			}
 
 			return pathDst + rSourcePathsInfo.GetAt(stSrcIndex)->GetDestinationPath() + spFileInfo->GetFilePath();