>> I know there is one in thread.rb that comes with the ruby distrobution >> but it uses critcal sections, which from reading Pickaxe can be dangerous. Uh, you are confusing the problem. Critical sections are nature in multi-thread programming. In Ruby, Queue class is as much a primitive tool as Mutex class for inter-thread communication. Rewriting the Queue class using Mutex gains nothing, and probably it will become slower. (My experiment showed it's about ten times slower when written using Mutex. Though some optimization may be possible.) FUKUMOTO Atsushi fukumoto / imasy.or.jp