I don't know enough about threads to be much help; but I would have 
thought that if you've handled the error caused by the browser timing 
out, then you're passing another error back from that thread which is 
causing a second exception.
If you want to include a backtrace in your error handling then that's 
simple enough:

rescue Timeout::Error => e
puts e.backtrace

-- 
Posted via http://www.ruby-forum.com/.