 
         for (i = 0; i < steps; i++)
         {
-            secantAngle = currentAngle + halfStepAngle;
-            nextAngle = secantAngle + halfStepAngle;
-
-            target.curveTo(centreX + Math.cos(secantAngle) * secant,
-                           centreY + Math.sin(secantAngle) * secant,
+            influenceAngle = currentAngle + halfStepAngle;
+            nextAngle = influenceAngle + halfStepAngle;
+
+            target.curveTo(centreX + Math.cos(influenceAngle) * secant,
+                           centreY + Math.sin(influenceAngle) * secant,
                            centreX + Math.cos(nextAngle) * radius,
                            centreY + Math.sin(nextAngle) * radius);
 

    drawCross(target:Graphics, centreX:Number, centreY:Number,
              halfWidth:Number, halfHeight:Number = Number.NaN):void
    {
        if (isNaN(halfHeight)) halfHeight = halfWidth;

        target.moveTo(centreX - halfWidth, centreY - halfHeight);
        target.lineTo(centreX + halfWidth, centreY + halfHeight);

            radius:Number, startAngle:Number, endAngle:Number,
            drawRadius:Boolean = false, steps:Number = 6):void
    {
        var secant:Number;

        var halfStepAngle:Number, currentAngle:Number,
            influenceAngle:Number, nextAngle:Number;

        var i:int;

