Index: src/ch/ShortcutsDlg.cpp
===================================================================
diff -u -r9352ed0c4fe447a36bc728640c307be6d41455fd -r9ea1e103b5fa4ddfebf8028f121ce16e917eec04
--- src/ch/ShortcutsDlg.cpp	(.../ShortcutsDlg.cpp)	(revision 9352ed0c4fe447a36bc728640c307be6d41455fd)
+++ src/ch/ShortcutsDlg.cpp	(.../ShortcutsDlg.cpp)	(revision 9ea1e103b5fa4ddfebf8028f121ce16e917eec04)
@@ -112,7 +112,7 @@
 	for(size_t stIndex = 0; stIndex < m_pcvRecent->size(); ++stIndex)
 	{
 		cbi.iItem = stIndex;
-		cbi.pszText = m_pcvRecent->at(stIndex);
+		cbi.pszText = const_cast<PTSTR>((PCTSTR)m_pcvRecent->at(stIndex));
 		sfi.iIcon = -1;
 		SHGetFileInfo(cbi.pszText, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
 		cbi.iImage = sfi.iIcon;
@@ -242,7 +242,7 @@
 	m_ctlPath.GetWindowText(sc.m_strPath);
 
 	// add to an array
-	m_cvShortcuts.push_back((const PTSTR)(LPCTSTR)(CString)sc, true);
+	m_cvShortcuts.push_back((CString)sc);
 
 	// add with an icon
 	SHFILEINFO sfi;
@@ -268,7 +268,7 @@
 		m_ctlPath.GetWindowText(sc.m_strPath);
 
 		// array update
-		m_cvShortcuts.replace(m_cvShortcuts.begin()+iPos, (const PTSTR)(LPCTSTR)(CString)sc, true, true);
+		m_cvShortcuts[iPos] = (CString)sc;
 
 		// list
 		SHFILEINFO sfi;
@@ -289,7 +289,7 @@
 	while (pos)
 	{
 		iPos=m_ctlShortcuts.GetNextSelectedItem(pos);
-		m_cvShortcuts.erase(m_cvShortcuts.begin()+iPos, true);
+		m_cvShortcuts.erase(m_cvShortcuts.begin() + iPos);
 		m_ctlShortcuts.DeleteItem(iPos);
 	}
 
@@ -319,7 +319,10 @@
 			break;
 
 		// swap data in m_ascShortcuts
-		m_cvShortcuts.swap_items(m_cvShortcuts.begin()+iPos-1, m_cvShortcuts.begin()+iPos);
+		std::vector<CString>::iterator iterOne = m_cvShortcuts.begin() + iPos - 1;
+		std::vector<CString>::iterator iterTwo = m_cvShortcuts.begin()+iPos;
+		std::swap(iterOne, iterTwo);
+		//m_cvShortcuts.swap();
 
 		// do the same with list
 		SHFILEINFO sfi;
@@ -356,8 +359,11 @@
 			break;
 
 		// swap data in m_ascShortcuts
-		m_cvShortcuts.swap_items(m_cvShortcuts.begin()+iPos, m_cvShortcuts.begin()+iPos+1);
+		std::vector<CString>::iterator iterOne = m_cvShortcuts.begin() + iPos;
+		std::vector<CString>::iterator iterTwo = m_cvShortcuts.begin() + iPos + 1;
 
+		std::swap(iterOne, iterTwo);
+
 		// do the same with list
 		SHFILEINFO sfi;
 		sfi.iIcon=-1;