Or alternatively is there a better way to do this? When I do a: pipe = IO.popen( "/usr/atria/bin/cleartool", "r+" ) # There's no such file as blah/blah so cleartool will output # that message on stderr. pipe.puts( "ls blah/blah\n" ) # So the error message goes to the screen and the pipe.gets hangs. line = pipe.gets I'd prefer the ability to munge stdout and stderr what is the proper way( so I can interpret the result properly )? Thanks! donald