I recently came across two different programs that had this line in a bin/ executable: $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../ lib")) This stuff makes me sad. The use of RubyGems is masking some bad practices here. The above code would not work with a traditional site installation. I imagine this sort of thing has probably trickled down form Rails, where programmers are accustom to deploying apps rather than releasing them. So here are the general rules (that I can think of off the top of my head): * Don't mess with the $LOAD_PATH. PERIOD. * Use relative lookup only when you must, eg. using bundled HTML templates. * Any relative paths you do use must remain within the confines of their main directory (eg. lib/) * Don't use a relative lookup for any ,rb or .so/.dll loading. PERIOD. * Oh, and it should never need to necessary to require 'rubygems'. These rules do not apply to building, eg. your Rakefile, running tests and such. But try to follow them as much as possible anyway. ~Trans