EthernetClient.connected() Alternative

I have an EthernetServer listening on a port using an Ethernet Shield with W5100. When a client connects, the server does not allow new connections until that client disconnects. The problem is EthernetClient.connected() fails to return the correct result quite often. I've been able to get the issue to occur every time if I connect to the EthernetServer, then disconnect my computer from that LAN. This issue occurs in other situations also, but those are much more random. Is there something else I can do to check if a client is still connected that is more reliable?

This server code has a timeout to prevent an infinite loop if the connection breaks.
http://playground.arduino.cc/Code/WebServerST
There are two sketches. The second sketch is a simple version with no SD interface. Look for the variable loopCount. That is the timeout control variable. Maybe that will help you.

Here is my client code with the same timeout code. Same loopCount variable controls the timeout.
http://playground.arduino.cc/Code/WebClient