mathew, First of all, let me assure that I'm well aware of engineering trade offs. I suggested that consistency be maintained where feasible, not always and at the expense of sanity. I also suggested that extensions would be useful if there was demand, such as adding support for Windows-style globbing. I don't want Ruby put into a straight jacket, but I also don't want to make it needlessly difficult for Ruby developers to get their work done. Your examples of managing filesystem case-sensitivity all have major shortcomings to interoperability with non-Ruby programs when only used within Ruby itself. Two of your solutions are used by file servers that present a single filesystem level interface to all programs. They can get away with the hacks they perform because all programs use the hacked side of the interface. Going behind the file server's back can cause trouble actually. The third solution only provides a sorting mechanism for file lists and does not describe a way to store and retrieve file data given a file path. If Ruby tried to enforce a lowest common denominator filesystem approach of any kind, Ruby programs would appear broken to the users who need interoperability with non-Ruby programs. Few developers would use it as a result, and you'll note that not even Java attempts to do such a foolish thing. You'll likely argue that Ruby having its own globbing solution appears similarly broken. My counter is that end users do not use globbing enough within Ruby to warrant the extra support load on Ruby developers who would need to be cognizant of the differences for each platform. Users' use of globbing will usually be limited to the command line where globbing is already handled in a platform-specific way outside of the Ruby script. I further contend that developers are more than capable of learning Ruby's implementation and tend to appreciate the fact that they don't have to worry about differences in implementation per platform. Consider yourself lucky that you only need to support a single platform with your scripts. I'm pleased to escape the old days of non-portable C code and endless #ifdefs. If you think I'm misguided or an aberration, ponder the reasons for the existence of Gnulib, APR, libiberty, and similar abstraction libraries. -Jeremy