     {
         _upping = popUpwards;
         _lefting = popLeftwards;
-        _fitting = null;
         show(mx, my);
     }
 

        var submenu :Menu = IMenuItemRenderer(row).menu;
        var lefting :Boolean = _lefting;
        var upping :Boolean = _upping;
        if (_fitting != null) {
            if (submenu.x + submenu.getExplicitOrMeasuredWidth() > _fitting.right) {
                lefting = true;
            }
            if (submenu.y + submenu.getExplicitOrMeasuredHeight() > _fitting.bottom) {
                upping = true;
            }
        }
        if (lefting) {
            submenu.x -= submenu.getExplicitOrMeasuredWidth();
        }
        if (upping) {
            submenu.y -= (submenu.getExplicitOrMeasuredHeight() - DisplayObject(row).height);
        }
        // if we've poped out of the boundaries, just snap it to the lower right corner
        if (_fitting != null) {
            if (submenu.x < _fitting.left) {
                submenu.x = Math.max(
                        _fitting.right - submenu.getExplicitOrMeasuredWidth(), _fitting.left);
            }
            if (submenu.y < _fitting.top) {
                submenu.y = Math.max(
                        _fitting.bottom - submenu.getExplicitOrMeasuredHeight(), _fitting.top);
            }
        }
    }


    {
        _upping = popUpwards;
        _lefting = popLeftwards;
        var r :Rectangle = trigger.getBounds(trigger.stage);
        show(_lefting ? r.left : r.right, _upping ? r.top : r.bottom);
    }
