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).