Correct, because when you run `a.setTimeout(0)` the socket will never emit a `timeout` event any more, because the timeout timers are unenrolled. But if some user-land code is setting a timeout on our socket, our timeout listener will then suddenly trigger. We need to remove our listener to be safe. Try:
```javascript
var net = require('net');
var s = net.connect(80, 'stackoverflow.com');
s.setTimeout(1000, function() { console.log('timeout');  });
s.on('connect', function() {
  console.log('connected!');
  s.setTimeout(0);
  setTimeout(function(){
    // Sometime later some user code does
    s.setTimeout(2);
  },100);
});
```