>[...] 
> So that's why mine got better, but it was bad before.  
> I'd like to directly compare the speed of yours to mine on my machine, 
> but I can't get it to run correctly, It reports every board as UNSOLVABLE.
> Has anyone else had any luck with it?

Is it posiible that you use ruby 1.8.1 or older?
If so, download a newer version :) or replace

     COMBINEDNEIGHBOURS[c].each{|i|possibilities[i].delete(v)}

by

     COMBINEDNEIGHBOURS[c].each{|i|possibilities[i] -= [v]}

I hope that helps (but makes it slower!)

cheers

Simon