Index: shlfileop.cpp =================================================================== --- dll/win32/shell32/shlfileop.cpp (revision 74004) +++ dll/win32/shell32/shlfileop.cpp (working copy) @@ -1220,7 +1220,7 @@ static void copy_dir_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, LPCWSTR szDestPath) { - WCHAR szFrom[MAX_PATH], szTo[MAX_PATH]; + WCHAR szFrom[MAX_PATH]; FILE_LIST flFromNew, flToNew; static const WCHAR wildCardFiles[] = {'*','.','*',0}; @@ -1228,12 +1228,7 @@ if (IsDotDir(feFrom->szFilename)) return; - if (PathFileExistsW(szDestPath)) - PathCombineW(szTo, szDestPath, feFrom->szFilename); - else - lstrcpyW(szTo, szDestPath); - - if (!(op->req->fFlags & FOF_NOCONFIRMATION) && PathFileExistsW(szTo)) + if (!(op->req->fFlags & FOF_NOCONFIRMATION) && PathFileExistsW(szDestPath)) { if (!SHELL_ConfirmDialogW(op->req->hwnd, ASK_OVERWRITE_FOLDER, feFrom->szFilename, op)) { @@ -1244,8 +1239,7 @@ } } - szTo[lstrlenW(szTo) + 1] = '\0'; - SHNotifyCreateDirectoryW(szTo, NULL); + SHNotifyCreateDirectoryW(szDestPath, NULL); PathCombineW(szFrom, feFrom->szFullPath, wildCardFiles); szFrom[lstrlenW(szFrom) + 1] = '\0'; @@ -1253,7 +1247,7 @@ ZeroMemory(&flFromNew, sizeof(FILE_LIST)); ZeroMemory(&flToNew, sizeof(FILE_LIST)); parse_file_list(&flFromNew, szFrom); - parse_file_list(&flToNew, szTo); + parse_file_list(&flToNew, szDestPath); copy_files(op, FALSE, &flFromNew, &flToNew);