Thank you again for your help. Points 1-3 are correct but 3-4 are not. The original program writes the data to STDERR and hangs. I have demonstrated the behavior using the script above for simplicity - but in fact the behavior is the same using a program which writes to STDERR and the above example which uses redirection to write to STDERR.