Hi, When delete-by-moving-to-trash is t and system-move-file-to-trash is not defined, move-file-to-trash moves the deleted file to system trash can following freedesktop.org trash can specification. In this condition, when a file is deleted and it has the same name as the one of an already deleted file in trash can, move-file-to-trash generates another file name by using make-temp-file to avoid the name collision. Unfortunately, it does put a wrong name with suffix ".trashinfo". For example, when 2 "hoge.txt" are deleted, expected files are like: /home/myusername/.local/share/Trash/files: -rw-rw-rw- 1 myusername 10 2019-10-25 20:00 hoge.txt -rw-rw-rw- 1 myusername 10 2019-10-25 20:00 hoge.txtwmWP0h /home/myusername/.local/share/Trash/info: -rw-rw-rw- 1 myusername 75 2019-10-25 20:00 hoge.txt.trashinfo -rw------- 1 myusername 75 2019-10-25 20:00 hoge.txtwmWP0h.trashinfo However, the reality is the 2nd trash file in files directory is named wrongly with ".trashinfo" suffix like: /home/myusername/.local/share/Trash/files: -rw-rw-rw- 1 myusername 10 2019-10-25 20:00 hoge.txt -rw-rw-rw- 1 myusername 10 2019-10-25 20:00 hoge.txtwmWP0h.trashinfo ^^^^^^^^^ /home/myusername/.local/share/Trash/info: -rw-rw-rw- 1 myusername 75 2019-10-25 20:00 hoge.txt.trashinfo -rw------- 1 myusername 75 2019-10-25 20:00 hoge.txtwmWP0h.trashinfo Here is a potential patch. --- files.el.original 2019-09-17 05:14:45.000000000 +0900 +++ files.el 2019-10-25 20:52:13.899138800 +0900 @@ -7408,7 +7408,8 @@ (setq info-fn (make-temp-file (expand-file-name files-base trash-info-dir) nil ".trashinfo")) - (setq files-base (file-name-nondirectory info-fn)) + (setq files-base (substring (file-name-nondirectory info-fn) + 0 (- (length ".trashinfo")))) (write-region nil nil info-fn nil 'quiet info-fn))) ;; Finally, try to move the file to the trashcan. (let ((delete-by-moving-to-trash nil) --- Shingo Tanaka