      * time value and the startDelay time passed in
      */
     private function insertKeyframe(keyframes:Vector.<Keyframe>, 
-        newKF:Keyframe, startDelay:Number = 0):void
+        newKF:Keyframe, startDelay:Number = 0, first:Boolean = false):void
     {
         newKF.time += startDelay;
         for (var i:int = 0; i < keyframes.length; i++)

            if (keyframes[i].time >= newKF.time)
            {
                // a new keyframe at the same time as an existing one
                // will get shifted forward briefly in time. This allows,
                // for example, multiple effects to be combined correctly
                // where one ends at the same time the next begins. We want the
                // first interval to use the values in the old keyframe at that
                // time, and the next interval to start from the values in the
                // new keyframe.
                if (keyframes[i].time == newKF.time)
                {
                    newKF.time += .01;
                    keyframes.splice(i+1, 0, newKF);
                }
                else
                {

                    for (j = 0; j < newMotionPath.keyframes.length; j++)
                    {
                        insertKeyframe(mp.keyframes, newMotionPath.keyframes[j], 
                            (newEffectStartTime - instanceStartTime), (j == 0));
                    }
                    added = true;
                    break;
