         {
             PopUpManager.addPopUp(popUp,this,false);
             popUpIsDisplayed = true;
-            if (popUp is UIComponent)
+            if (popUp is UIComponent && !popUpSizeCaptured)
             {
                 popUpWidth = UIComponent(popUp).explicitWidth;
                 popUpHeight = UIComponent(popUp).explicitHeight;
                 UIComponent(popUp).validateNow();
+                popUpSizeCaptured = true;
             }   
             
             applyPopUpTransform(width, height);

    private var popUpIsDisplayed:Boolean = false;
    private var addedToStage:Boolean = false;
    
    private static var decomposition:Vector.<Number> = new <Number>[0,0,0,0,0];
    
    //--------------------------------------------------------------------------

        {
            if (popUpWidthMatchesAnchorWidth)
                UIComponent(popUp).width = unscaledWidth;
            else
                UIComponent(popUp).explicitWidth = popUpWidth;
            
            if (popUpHeightMatchesAnchorHeight)
                UIComponent(popUp).height = unscaledHeight;
            else
                UIComponent(popUp).explicitHeight = popUpHeight;
        }
        else
        {
