At ln 398, col 13 in FTP.cs Stream.Close() is called. Apparently calling it before FtpWebRequest.Abort() doesn't correctly disconnect the client (which I noticed while using the program with FTP with two maximum simultaneous connections). Putting the latter method before the former solves the problem. I haven't been able to test it on other workstations, but I think that the bug happens systematically.
I'm attaching the fixed FTP.cs.
Anonymous
I've looked into the problem more and the actual fix would be setting FtpWebRequest.KeepAlive = false, and removing the call to FtpWebRequest.Abort() which is used only for asynchronous I/O.
Nice catch!