In my student days, I owned a DLink DI-624+ router. It needed resetting at least once a day and even more often under heavy use. Not exactly the behaviour you look for in a router... After this experience I vowed never to waste time on DLink hardware again.
As it happens, I just got a DLink DIR-615 router with my new cable connection. It has a setting to turn the "DNS relay" function on or off. I left it turned on because it was the default and I've always configured my routers to act as DNS servers -- if only because it enable neat little tricks like accessing the router as "dlinkrouter" (which doesn't work over WiFi, by the way).
I then noticed that my IM client failed to connect to several of my Jabber accounts (also known as XMPP). As it happens, the SRV records for those accounts which are required to find the Jabber server for a given e-mail address were not returned by the DNS server. After some digging around (intended pun:
dig srv _jabber._tcp.domain.com) it eventually dawned on me that the "DNS relay" in the DLink router was eating those SRV replies.
Needless to say, after turning off the relay "feature," my IM clients could happily connect to all accounts again.
I'm now replacing the DLink router with an AVM Fritz!Box I have lying around...
Edit (January 2015): salvation for the DLink router was found at DD-WRT.