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::max()) + if(!(iFlags & 0x01) && stSrcIndex != std::numeric_limits::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();