Chris,

Another idea : may be the deconnection comes from your ISP which has its own idle timer. I suggest you to start a continuous ping from a telnet session.

ping -I 30 -s Remote_IP_address > /dev/null &

(Please check the syntax : i have no wl500g at hand).