Kero van Gelder wrote:

> Hm, you're not trying
> 
>   Thread.new() {
>     Tk.mainloop()
>   }
> 
> are you? Instead, try
> 
>   Thread.new() {
>     # your other stuff
>   }

That doesn't make any sense to me.  Unless you call Tk.mainloop() no 
processing of Tk stuff happens; in particular, the window isn't even 
displayed and the program exits.

Perhaps I missed your point, though.

My code runs absolutely perfectly under Linux.  I only have this problem on 
the Sun box at uni, where I didn't install Ruby, which is why I'm guessing 
it's a configuration issue.

> PS: the huge line is about callback/event from the Tk side of your
> program.

Yep.  I guessed that much.  It's far too complex for me to delve further 
into it without more knowledge of how things work, though ... and it's 
probably pointless, since I still think the problem is some kind of 
configuration issue.