Actually, things were more broken than I thought. The original code did not handle correctly directory copy from local to remote either. The reason is function tramp-make-copy-program-file-name already quotes the target, and then shell-quote-argument quotes the target again, so we get double quotes. I attached a second patch to fix both copying dir from local to remote, or remote to local. However, I am not so sure if this is a completely correct fix as I don't know much about the "multi-hop" thing. Anyway, hope this can serve as a starting point for the ultimate proper fix. BTW, all the above works out of box on Emacs 23.3. To be honest, I am quite disappointed with Emacs recent (last 2 or 3 years) release quality. Seems some convoluted low-quality code was checked in the first place, and then not enough testing was done before release. Don't know if I have any right to complain in the first place as I am not an active developer here. But I would hate to see my favorite editor Emacs going down this path further. On Fri, Oct 2, 2015 at 10:35 AM, Warren Lynn wrote: > I found the cause and have a fix for it. Attached is the patch (on top of > Emacs 24.5.1).: > > The cause is the order of the function "shell-quote-argument" and > "file-name-nondirectory" is wrong. So if I have a target directory name > "c:\wlynn\tmp\xyz", the buggy code will first quote it into > "\"c:\wlynn\tmp\xyz\"", and the file-name-nondirectory function will strip > the last part, ending with something like this: > "\"c:\wlynn\tmp" > > See the dangling leading quote? > > I verified that it works now. Let me know if you think the patch is good > and is merged into the latest dev branch. Thanks. > > > On Sat, Sep 26, 2015 at 5:16 AM, Michael Albinus > wrote: > >> Warren Lynn writes: >> >> > I use dired/tramp to view a directory on a remote machine (Linux) with >> > pscp method, and if I do a copy (recursively) of a remote dir to >> > either a local or another remote dir with command dired-to-copy, it >> > fails (after entering the password) with the following message in the >> > minibuffer: >> > >> > ============================================ >> > Tramp failed to connect. If this happens repeatedly try 'M-x >> > tramp-cleanup-this-connection' >> > ============================================ >> >> Please apply (setq tramp-verbose 6) prior to your test. Rerun the test, >> and show us the resulting Tramp debug buffer. >> >> Best regards, Michael. >> > >