 
         while (_heap.size > 0 && _heap.front.expiration <= now) {
             var buddy :Buddy = _heap.dequeue();
-            buddy.budette.expire(buddy);
+            if (buddy.budette != null) {
+                buddy.budette.expire(buddy);
+            }
         }
     }
 

        }
    }

    private function queueTimer (when :int) :void
    {
        // spawn a new buddy and toss it on the heap
        _buddy = new Buddy(this, when);
        if (_heap.enqueue(_buddy)) {
            return;
        }

        _currentCount ++;
        dispatchEvent(new TimerEvent(TimerEvent.TIMER));
        if (_currentCount < _repeatCount) {
            buddy.expiration += _delay;
            enqueue(buddy);

        } else {
            dispatchEvent(new TimerEvent(TimerEvent.TIMER_COMPLETE));
