Arduino Uno R3 + Arduino Ethernet Shield R3 hang...

I've been trying to understand a hang that happens unpredictably after many hours/days/weeks of communication with the Pachube server.
This is the code where it occurs:

while (!ReadTimer.Expired()) {
StatusAvailableSet(HIGH);
if (LocalClient.available() > 0) {
ProcessInput();
}
StatusAvailableSet(LOW);

StatusConnectedSet(HIGH);
if (!LocalClient.connected()) {
break;
}
StatusConnectedSet(LOW);
}

When the hang occurs the "Status Connected" LED remains ON (and this is the only place where the LEDpin is set to HIGH).
The ReadTimer expires after 60seconds, yet the board is stuck there with the Connected LED on.
This is telling me that it hangs in the LocalClient.connected() call ?

I can probably write the loop without using LocalClient.connected()... i.e. if there is data available read it and reset the ReadTimer, else if the ReadTimer expires, bail out...
It'll slow down my communication (it is not very frequent anyway) but better than getting stuck there for ever.

Does anybody know of any issues with the connected() call ?
Thanks !

Read the google code source for the ethernet library , specifically bug 605

did your call 'change' fix it or is the problem still there?

I had a dig about in my code base,
Generally I have:

if (!client.connected() || !client.available()) {.....}

and it seems to function fine,

That is to say I check 'connected()' before 'available()'

Interestingly in the library it states:

connected()
Whether or not the client is connected. Note that a client is considered connected if the connection has been closed but there is still unread data.

So in theory if you do not completely empty all available data even after closing the socket, there is the potential for the code to consider the connection still open.