         // Add a temporary group to contain our snapshot view of the navigator
         // while we animate.
         transitionGroup = new Group();
-        transitionGroup.includeInLayout = false;
-
+
+        // FIXME (chiedozi): If navigator isn't at (0,0), I don't think this will work
+        // Size the transitionGroup to match the width and height of the navigator
+        // so that the parent of the targetNavigator's layout remains unchanged 
+        transitionGroup.width = targetNavigator.width;
+        transitionGroup.height = targetNavigator.height;
+        transitionGroup.x = targetNavigator.x;
+        transitionGroup.y = targetNavigator.y;
+        
+        // The cached navigator and targetNavigator are currently position at their original
+        // coordinates.  Since they will be parented into the transition group that already
+        // takes that into consideration, we want to reposition the components to be at the
+        // origin of the container.
+        targetNavigator.x -= transitionGroup.x;
+        targetNavigator.y -= transitionGroup.y;
+        
         // Add the transition group at the same index of the target navigator
         addComponentToContainerAt(transitionGroup, DisplayObject(targetNavigator).parent as UIComponent, navigatorProps.childIndex);
         

    {
        var projection:PerspectiveProjection = new PerspectiveProjection();
        projection.fieldOfView = 45;
        projection.projectionCenter = new Point(viewWidth / 2, viewHeight / 2);
        return projection;
    }
    

        transitionGroup.y = viewHeight / 2;
        transitionGroup.z = vertical ? (viewHeight / 2) : (viewWidth / 2);
        
        // Position the 'faces' of our cube.
        if (vertical)
        {
