> StringIO is subclassed from Data, so if you already had it defined without the > correct ancestor then the redefinition will fail: > > class Vehicle; end > class Car; end > class Car < Vehicle; end # crash Interesting. >> class StringIO < Data; end => nil >> require 'stringio' => true I guess the error message was confusing to me. "NameError: StringIO is already defined" meant "NameError: StringIO is already defined or superclass mismatch" Thanks! -rp