This bugged me for ages (our client needed to be resilient to network switch) and this seemed the best of a bad set of ways to handle it. Hopefully this will catch most base issues. It would be interesting to try and develop some definitive test cases for this.