>> begin >> timeout(5) do >> s = TCPSocket.new(host, port) >> end >> rescue TimeoutError >> puts "failed initial connect, retrying..." >> retry >> rescue >> puts "failed #{$!}... retrying" >> retry >> end >> # s is no longer available here. DAB> Wouldn't it work just to say: DAB> s = nil DAB> before the block? It sure did! thanks, -joe