Jeff, You pointed out that a string consisting of \0 bytes isn't false, and so it's hard to test for in Perl. Solutions are: if ($mask =~ /^\0*$/) and use IO::Select; I've marked the bugreport as closed. Cheers; Nat