diff --git a/src/fileio.c b/src/fileio.c index efad98298cf..d109f034652 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -2750,7 +2750,13 @@ This is what happens in interactive use with M-x. */) CHECK_STRING (newname); file = Fexpand_file_name (file, Qnil); - if (!NILP (Ffile_directory_p (newname))) + if ((!NILP (Ffile_directory_p (newname))) +#ifdef DOS_NT + /* If the file names are identical but for the case, + don't attempt to move directory to itself. */ + && (NILP (Fstring_equal (Fdowncase (file), Fdowncase (newname)))) +#endif + ) newname = Fexpand_file_name (Ffile_name_nondirectory (file), newname); else newname = Fexpand_file_name (newname, Qnil);