The switch from checking _sock against a default value, combined with the checking for unconnected clients in status(), broke the Client. I went back to checking the value of _sock against the default and removed the _connected member altogether because it was redundant (and therefore needed to be kept in sync with _sock).