             return;
         }
 
-        enqueue(new Buddy(this, getTimer() + _delay));
+        scheduleBuddy(new Buddy(this));
     }
 
     public function stop () :void

        }

        if (repeatCount == 0 || _currentCount < _repeatCount) {
            buddy.expiration += _delay;
            enqueue(buddy);

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

        }
    }

    private function scheduleBuddy (buddy :Buddy) :void
    {
        _buddy = buddy;
        _buddy.expiration = getTimer() + Math.max(_delay, 5);
        if (_heap.enqueue(_buddy)) {
            return;
        }
