I know Linksys routers have a problem similar to this, and sometimes the DSL modems given out by the telephone companies are similarly configured in a baffling way.
A lot of times, routers are configured to keep track of every connection you make to another computer for an insane period of like 3 days. Given that most routers have 4-16MB of RAM, and that also has to hold the router firmware, they quickly run out of memory with such a configuration, and stall or crash.
Sometimes, you can telnet into the router or DSL modem and get access to options not available through the web based setup. So check sites like DSL Reports, their forums in particular, to see if anyone has posted instructions on how to do this with your particular router. The good thing about these sorts of changes, is if something goes wrong, a simple power cycle removes them. That's also the bad thing about them. Any firmware updates, power outages, or anything else, means you have to redo these changes.
Another option, that worked for me, is to put my DSL modem into bridging mode, and then set up my Dlink router to handle everything. Basically, all the DSL modem does in bridging mode, is translate the DSL signal and pass it along. Not all DSL modems can do this, so you'll want to find out if yours can. Then, it's probably best to have a second DSL router to run everything through to handle all the login details and provide a firewall. The DSL Reports site will be a good place to find a list of problematic brands/models and also suggested brands/models.
I have my desktop PC and my laptop connected to my DSL line through a Dynex router. The router will timeout after a certain period of time, so everytime I want to go online, I need to power cycle the router. Is there any way around this? Is it possible to have both computers always connected, like it is when I just have 1 computer connected directly to the modem?