Index: src/mt.c =================================================================== --- src/mt.c.orig +++ src/mt.c @@ -723,11 +723,11 @@ main (int argc, char **argv) #ifdef MTDATCOMP case MTDATCOMP: #endif - tapedesc = rmtopen (tapedev, O_WRONLY, 0, rsh_command_option); + tapedesc = rmtopen (tapedev, O_WRONLY | O_NONBLOCK, 0, rsh_command_option); break; default: - tapedesc = rmtopen (tapedev, O_RDONLY, 0, rsh_command_option); + tapedesc = rmtopen (tapedev, O_RDONLY | O_NONBLOCK, 0, rsh_command_option); } if (tapedesc == -1) Index: src/util.c =================================================================== --- src/util.c.orig +++ src/util.c @@ -767,14 +767,14 @@ open_archive (char *file) copy_in = process_copy_in; if (copy_function == copy_in) - fd = rmtopen (file, O_RDONLY | O_BINARY, MODE_RW, rsh_command_option); + fd = rmtopen (file, O_RDONLY | O_BINARY | O_NONBLOCK, MODE_RW, rsh_command_option); else { if (!append_flag) - fd = rmtopen (file, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, MODE_RW, + fd = rmtopen (file, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY | O_NONBLOCK, MODE_RW, rsh_command_option); else - fd = rmtopen (file, O_RDWR | O_BINARY, MODE_RW, rsh_command_option); + fd = rmtopen (file, O_RDWR | O_BINARY | O_NONBLOCK, MODE_RW, rsh_command_option); } return fd;