Index: src/ch/FileInfo.cpp
===================================================================
diff -u -N -rc435ab507c8b8280264188b49e9ada56d46c0261 -rbd08c279240bac9e7902f8da6a9251e0252ec324
--- src/ch/FileInfo.cpp	(.../FileInfo.cpp)	(revision c435ab507c8b8280264188b49e9ada56d46c0261)
+++ src/ch/FileInfo.cpp	(.../FileInfo.cpp)	(revision bd08c279240bac9e7902f8da6a9251e0252ec324)
@@ -56,7 +56,7 @@
 	m_bMove(rEntry.m_bMove),
 	m_iDriveNumber(rEntry.m_iDriveNumber),
 	m_uiDriveType(rEntry.m_uiDriveType),
-	m_vDstPaths(rEntry.m_vDstPaths)
+	m_strDstPath(rEntry.m_strDstPath)
 {
 }
 
@@ -96,21 +96,16 @@
 	return CString(szName) + szExt;
 }
 
-void CClipboardEntry::AddDestinationPath(const CString& strPath)
+void CClipboardEntry::SetDestinationPath(const CString& strPath)
 {
-	m_vDstPaths.push_back(strPath);
+	m_strDstPath = strPath;
 }
 
-size_t CClipboardEntry::GetDestinationPathsCount() const
+CString CClipboardEntry::GetDestinationPath()
 {
-	return m_vDstPaths.size();
+	return m_strDstPath;
 }
 
-CString CClipboardEntry::GetDestinationPath(size_t stIndex)
-{
-	return m_vDstPaths.at(stIndex);
-}
-
 //////////////////////////////////////////////////////////////////////////////
 // CClipboardArray
 
@@ -455,7 +450,7 @@
 		&& rInfo.m_ftLastWrite.dwHighDateTime == m_ftLastWrite.dwHighDateTime && rInfo.m_ftLastWrite.dwLowDateTime == m_ftLastWrite.dwLowDateTime && rInfo.m_uhFileSize == m_uhFileSize);
 }
 
-CString CFileInfo::GetDestinationPath(CString strPath, unsigned char ucCopyNumber, int iFlags)
+CString CFileInfo::GetDestinationPath(CString strPath, int iFlags)
 {
 	// add '\\'
 	if (strPath.Right(1) != _T("\\"))
@@ -472,26 +467,24 @@
 		str.TrimLeft(_T("\\"));
 
 		// force create directory
-//		AfxMessageBox("Created multiple level of paths for %s"+strPath+str);
 		SHCreateDirectoryEx(NULL, strPath+str, NULL);
-//		MakeSureDirectoryPathExists(strPath+str);
 
-//		AfxMessageBox(strPath+str+fname+CString(ext));
 		return strPath+str+fname+CString(ext);
 	}
 	else
 	{
 		if (!(iFlags & 0x01) && m_stSrcIndex != std::numeric_limits<size_t>::max())
 		{
 			// generate new dest name
-			while (ucCopyNumber >= m_pClipboard->GetAt(m_stSrcIndex)->GetDestinationPathsCount())
+			if(!m_pClipboard->GetAt(m_stSrcIndex)->IsDestinationPathSet())
 			{
 				CString strNewPath;
 				FindFreeSubstituteName(GetFullFilePath(), strPath, &strNewPath);
-				m_pClipboard->GetAt(m_stSrcIndex)->AddDestinationPath(strNewPath);
+				m_pClipboard->GetAt(m_stSrcIndex)->SetDestinationPath(strNewPath);
 			}
 			
-			return strPath+m_pClipboard->GetAt(m_stSrcIndex)->GetDestinationPath(ucCopyNumber)+m_strFilePath;
+			CString strResultPath = strPath+m_pClipboard->GetAt(m_stSrcIndex)->GetDestinationPath(ucCopyNumber)+m_strFilePath;
+			return strResultPath;
 		}
 		else
 			return strPath+GetFileName();