Ethernet server release and accept new connection...?

I've been racking my brain trying to get this to work. I have a lump of code that operates locally on the USB serial, and have extended that to replicate all the user menu functionality onto a port 23 'telnet' / raw socket using the EthernetServer() and EtherneClient() classes.

The code also runs another Ethernet() session calling out (ICMPping), which also runs perfectly.

Everything works perfectly - EXCEPT... When a [u]remote client connects for the FIRST time[/u], all works fine, [u]Then disconnect[/u] which seems ok, But it [u]seems the he local socket is not released[/u] for another connection. If I [u]reconnect[/u] from the remote client again, the server code doesn't do what I expect (and worked for the first connection), the [u]telnetClient object[/u] appears to be 'invalid' (perhaps retaining reference to the previously closed session?)

Any ideas - HELP!!!

Just to let everyone know - I couldn't find a way to be notified or sure of a client drop or disconnect, so I'm checking traffic - and if nothing is sent or received for (60 secs), I close() the telnet session, and begin() again from the Arduino end. It works, but seems clunky.