         else
         {
             cachedActionBar = getSnapshot(navigator.actionBar);
-        }
-        
-        // Save the position of the action in global coordinates
-		if (actionBar)
-        	cachedActionBarGlobalPosition = getTargetNavigatorCoordinates(actionBar);
+            
+            if (cachedActionBar)
+            {
+                // Save the global position of the cached actionBar image.  The getSnapshot method
+                // will position the image based on the original components parent.
+                p = new Point(cachedActionBar.x, cachedActionBar.y);
+                cachedActionBarGlobalPosition = actionBar.parent.localToGlobal(p);
+            }
+        }
         
         // Cache the tab bar bitmap and location
         if (tabBar)
         {
             cachedTabBar = getSnapshot(TabbedViewNavigator(targetNavigator).tabBar);
-            cachedTabBarGlobalPosition = getTargetNavigatorCoordinates(tabBar);
+            
+            if (cachedTabBar)
+            {
+                p = new Point(cachedTabBar.x, cachedTabBar.y);
+                cachedTabBarGlobalPosition = tabBar.parent.localToGlobal(p);
+            }
+            
             navigatorProps.tabBarIncludeInLayout = tabBar.includeInLayout;
             navigatorProps.tabBarCacheAsBitmap = tabBar.cacheAsBitmap;
         }

    //  Variables
    //
    //--------------------------------------------------------------------------
    /**
     *  @private
     *  Padding used to generate the actionbar bitmap.  This is needed so that
     *  drop shadows can be properly captured.
     */ 
    mx_internal var actionBarBitmapPadding:uint = 4;
    
    /**
     *  @private

     */
    override public function captureStartValues():void
    {
        var p:Point;
        
        super.captureStartValues();
        
        // Initialize the property bag used to save some of our
