     {
         super.active = value;
         
-        if (navigationStack.length == 0 && firstView != null)
-        {
-            navigationStack.push(firstView, firstViewData);
-            viewChangeRequested = true;
-            invalidateProperties();
-        }
-        
-        // If the navigator isn't initialized, this means the first validation
-        // pass hasn't been completed yet.  The top view will be added in that
-        // process and doesn't need to be done here.
-        if (initialized)
-        {
-            if (value)
-            {
-                var view:View = createViewInstance(navigationStack.topView);
-                view.active = true;
-            }
-            else
-            {
-                activeView.active = false;
-                destoryViewInstance(navigationStack.topView);                
+        if (navigationStack.length == 0)
+        {
+            if (firstView != null)
+            {
+                navigationStack.push(firstView, firstViewData);
+                viewChangeRequested = true;
+                invalidateProperties();
+            }
+        }
+        else
+        {
+            // If the navigator isn't initialized, this means the first validation
+            // pass hasn't been completed yet.  The top view will be added in the
+            // next validation pass and doesn't need to be done here.
+            if (initialized)
+            {
+                if (value)
+                {
+                    // FIXME (chiedozi): Need to keep track of current view in the case that stuff 
+                    // changes when navigator isnt active
+                    var view:View = navigationStack.topView.instance;
+                    if (!view)
+                        view = createViewInstance(navigationStack.topView);
+                    
+                    view.active = true;
+                    
+                    if (hasEventListener(Event.COMPLETE))
+                        dispatchEvent(new Event(Event.COMPLETE));
+                }
+                else
+                {
+                    activeView.active = false;
+                    
+    //                if (destructionPolicy == "auto")
+    //                    destoryViewInstance(navigationStack.topView);           
+                }
             }
         }
     }

    
    /**
     *  @private
     *  Flag indicates whether the navigator is in the process of
     *  changing a view.
     */ 

        }
        
        // If an animation is running, end it
        // FIXME (chiedozi): There is an issue here when you do two hides/shows in a row
        if (actionBarVisibilityEffect)
            actionBarVisibilityEffect.end();
        
        if (actionBar && showingActionBar != actionBar.visible)
        {
            if (transitionsEnabled && animateActionBarVisbility)
            {
                actionBarVisibilityEffect = createVisibilityAnimation();
                actionBarVisibilityEffect.addEventListener(EffectEvent.EFFECT_END, 
                    visibilityAnimation_completeHandler);
                actionBarVisibilityEffect.play();
            }
            else
            {
                if (actionBarVisibilityInvalidated)
                    actionBar.visible = actionBar.includeInLayout = !actionBar.visible;
            }
        }
        
        actionBarVisibilityInvalidated = false;
