         if (screen)
         {
             adjustedHorizontalPosition = adjustCalloutPosition(
-                horizontalPosition,
+                actualHorizontalPosition,
                 calloutBounds.left, calloutBounds.right,
                 screen.left, screen.right);
 
             adjustedVerticalPosition = adjustCalloutPosition(
-                verticalPosition,
+                actualVerticalPosition,
                 calloutBounds.top, calloutBounds.bottom,
                 screen.top, screen.bottom);
         }


        // If the callout still doesn't fit, then nudge it
        // so it is completely on the screen. Make sure to include scale.
        regPoint.y += nudgeToFit(calloutBounds.top, calloutBounds.bottom,
            screen.top + margin, screen.bottom - margin, concatScaleY);
        
        regPoint.x += nudgeToFit(calloutBounds.left, calloutBounds.right,
            screen.left + margin, screen.right - margin, concatScaleX);

        // Compute the stage coordinates of the upper,left corner of the PopUp, taking
        // the postTransformOffsets - which include mirroring - into account.

        else // if ((verticalPosition == CalloutPosition.AUTO) && (horizontalPosition == CalloutPosition.AUTO))
        {
            var useVertical:Boolean = true;
            var useInterior:Boolean = false;

            if (!canFitHorizontal && !canFitVertical)
            {
                // Edge case where callout doesn't fit in any direction.
                // Choose position based on aspect ratio
                useVertical = !isLandscape;
                
                // Only use interior positions when no space is available
                useInterior = (spaceTop <= 0) && (spaceBottom <= 0) &&
                              (spaceLeft <= 0) && (spaceRight <= 0);
            }
            else if (isLandscape)
            {
