Index: src/ch/task.cpp =================================================================== diff -u -N -rf6706e71721e6828e4e3be894caec6808e27630b -r003e0baad9604efc422ecb3746154e4ff9f40156 --- src/ch/task.cpp (.../task.cpp) (revision f6706e71721e6828e4e3be894caec6808e27630b) +++ src/ch/task.cpp (.../task.cpp) (revision 003e0baad9604efc422ecb3746154e4ff9f40156) @@ -1537,7 +1537,7 @@ || !TimeToFileTime(pSrcInfo->GetLastWriteTime(), &lastWrite) ) return false; - HANDLE handle=CreateFile(lpszName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + HANDLE handle=CreateFile(lpszName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | (pSrcInfo->IsDirectory() ? FILE_FLAG_BACKUP_SEMANTICS : 0), NULL); if (handle == INVALID_HANDLE_VALUE) return false;