In C, you'd use something like this: | fcntl(fd, F_SETFL, | fcntl(fd, F_GETFL) & | ~O_NONBLOCK); In Ruby, the following: | require 'io/nonblock' | fh = open('/tmp/myfifo') | fh.nonblock = false ...which just hides the fcntl call and nasty constants in a nicer interface. On my test machine, though, it looks like the FIFO opens in blocking mode by default, at least if opened for writing. Any of that help? Lennon