                 initY = _popUp.height;
             }
 
-            point.x = Math.min( point.x, screen.width - _popUp.getExplicitOrMeasuredWidth());
+            point.x = Math.min( point.x, screen.right - _popUp.getExplicitOrMeasuredWidth());
             point.x = Math.max( point.x, 0);
+            point = _popUp.parent.globalToLocal(point);
             if (_popUp.x != point.x || _popUp.y != point.y)
                 _popUp.move(point.x, point.y);
 

import mx.core.mx_internal;
import mx.effects.Tween;
import mx.events.DropdownEvent;
import mx.events.ListEvent;
import mx.events.MenuEvent;
import mx.events.FlexMouseEvent;
import mx.events.SandboxMouseEvent;
import mx.managers.IFocusManagerComponent;
import mx.managers.PopUpManager;
import mx.styles.ISimpleStyleClient;



            point = _popUp.parent.globalToLocal(point);

            endY = (point.y + _popUp.height > screen.bottom && 
                               point.y > (screen.top + height + _popUp.height)
                               ? -_popUp.height - 2
                               : _popUp.height + 2);
            initY = 0;
