         _isOnDisplayList = true;
         
         // add listeners to current parents to see if their visibility has changed
+        if (pauseWhenHidden)
+            addVisibilityListeners();
+        
+        computeEffectiveVisibility();
+        changePlayback();
+    }
+    
+    /**
+     *  @private
+     *  Add event listeners for SHOW and HIDE on all the ancestors up the parent chain.
+     *  Adding weak event listeners just to be safe.
+     */
+    private function addVisibilityListeners():void
+    {
         var current:IVisualElement = this;
         while (current)
         {

            
            current = current.parent as IVisualElement;
        }
        
        changePlayback();
    }

     */
    public function set pauseWhenHidden(value:Boolean):void
    {
        if (_pauseWhenHidden == value)
            return;
        
        _pauseWhenHidden = value;
        
        if (_pauseWhenHidden)
            addVisibilityListeners();
        else
            removeVisibilityListeners();
        
        changePlayback();
    }
