In 1.9, Kernel.open calls to_open on its argument if it supports that method. The to_open method is supposed to return an open IO stream, I suppose. I wonder why open doesn't use the to_io conversion instead. If I want to write a stream-like object, I have to implement to_io and to_open, and chances are they will do the same thing. What is the benefit to have these as separate conversions? David