...just a thought, but does Net::FTP attempt to copy to memory and then write to disk from RAM? Is that any different to the way an FTP command from the command line would do things? I'm thinking that it could be sending the file to memory on my laptop before uploading the file to the server, leading to the timeout, because the FTP server isn't seeing any activity after the file name has been put on disk.