anchor.diff:    void _createTimerHandler() {
   
       void _handleTimeout() {
  -      int currentTime =
  -          (new DateTime.now()).millisecondsSinceEpoch + _TIMER_JITTER;
  +      int currentTime = new DateTime.now().millisecondsSinceEpoch;
   
         // Collect all pending timers.
  -      DoubleLinkedQueueEntry<_Timer> entry = _timers.firstEntry();
         var pending_timers = new List();
  -      while (entry != null) {
  -        _Timer timer = entry.element;
  -        if (timer._wakeupTime <= currentTime) {
  -          entry.remove();
  -          pending_timers.add(timer);
  -          entry = _timers.firstEntry();
  +      while (!_timers.isEmpty) {
  +        _Timer entry = _timers.first;
  +        if (entry._wakeupTime <= currentTime) {
  +          entry.unlink();
  +          pending_timers.add(entry);
           } else {
             break;
           }
  
positive.code:       }
        _EventHandler._sendData(null,
                                _receivePort,
                                _timers.firstEntry().element._wakeupTime);
      }
    }
  
  
negative.code:       return;
      }
  
      if (_timers.isEmpty) {
        // No pending timers: Close the receive port and let the event handler
        // know.
        if (_receivePort != null) {
  