      * 
      *  Nudging to fit the screen accounts for <code>margin</code> so that
      *  the Callout is not positioned in the margin.
-     *
-     *  @see spark.components.PopUpAnchor#calculatePopUpPosition
+     * 
+     *  <code>arrowDirection</code> will change if required for the callout
+     *  to fit.
+     *
+     *  @see #margin
      */
     mx_internal function calculatePopUpPosition():Point
     {

                }
            }
            
            // Callout can be respositioned while open
            if (isOpen && invalidatePositionFlag)
            {
                // Callout size may change due to arrowDirection change.
                // We must revalidate the skin before repositioning the Callout 
                invalidateSize();
                validateNow();

                // Reposition once the Callout has been resized
                updatePopUpPosition();
                
                invalidatePositionFlag = false;
            }
            
            // Always reset the arrow position
            invalidateDisplayList();
        }
    }

    /**
     * @private
     */
    override public function updatePopUpPosition():void
    {

    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
    {
        super.updateDisplayList(unscaledWidth, unscaledHeight);
        
        // Callout can be respositioned while open via SystemManager resize or
        // explicit changes to horizontalPostion and verticalPosition.
        if (isOpen && invalidatePositionFlag)
        {
            updatePopUpPosition();
            invalidatePositionFlag = false;
        }

        // Position the arrow
        updateSkinDisplayList();
