Just ran a quick test, and it appears that shorewall is not the culprit - I disabled shorewall temporarily, and the connection still dropped out.
Not sure if it's related, but the laptop couldn't connect to the Internet at all though with shorewall not running, even when the PC was connected fine.
Anyone got any bright ideas? I'm leaning towards a clean install on both machines (probably about time anyway), though the PC's DVD drive has died, so I'd have to replace that first.
In the meantime it's really frustrating!