Hello all, I am under the impression that Kernel#require returns false if the argument is already loaded. However, this morning I encountered behavior that confused me. I was trying to require the RedCloth gem, and I was doing it via irb. First I tried: irb(main):001:0> require 'redcloth' LoadError: no such file to load -- redcloth from (irb):1:in `require' from (irb):1 from :0 but that didn't work because the gems were not loaded (at least I think that's why I got an error). So, instead I did this: irb(main):002:0> require 'rubygems' => true irb(main):003:0> require 'redcloth' => false So then I noticed that the last call to require returned false, which made me think that requiring 'rubygems' was all that I needed to do and RedCloth would automatically be loaded. I tested this by restarting irb, but my assumption proved incorrect: irb(main):001:0> require 'rubygems' => true irb(main):002:0> RedCloth NameError: uninitialized constant RedCloth from (irb):2 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/specification.rb:365 irb(main):003:0> require 'redcloth' => false irb(main):004:0> RedCloth => RedCloth Can somebody help me understand why the RedCloth constant was not initialized yet the call to require returns false? I hope I've included enough information. Incidentally, if I follow the instructions from the Pickaxe I get an error: irb(main):001:0> require 'rubygems' => true irb(main):002:0> require_gem 'redcloth' Gem::LoadError: Could not find RubyGem redcloth (> 0.0.0) Thanks for any input! mr.ra88it $ ruby -v ruby 1.8.4 (2005-12-24) [powerpc-darwin8.3.0]