                     var postDelaySeekTime:Number = playheadTime - startDelay;
                     if (postDelaySeekTime < 0)
                     {
-                        animPendingTime -= playheadTime;
+                        animPendingTime = _intervalTime + (startDelay - playheadTime);
                         // add it back into the array in the proper order
                         var insertIndex:int = -1;
                         for (i = 0; i < delayedStartAnims.length; ++i)

                        // reduce seek time by startTime; we will go ahead and
                        // seek into the now-playing animation by that much
                        playheadTime -= startDelay;
                        _doSeek = false;
                        start();
                        startTime = _intervalTime - playheadTime;
                        doInterval();
                        return;
                    }
                }

        // Should only do this for playing animation, as the stopped animations
        // do it for themselves
        startTime = _intervalTime - playheadTime;
        _doSeek = true;
        
        if (!_isPlaying)
        {
            _intervalTime = Timeline.currentTime;
            // TODO: comments...
            if (includeStartDelay && startDelay > 0)
