             verticalScrollBar.viewport = null;        
         if (skin && viewport)
         {
-            viewport.clipContent = false;
+            viewport.clipAndEnableScrolling = false;
             skin.removeElement(viewport);
             viewport.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, viewport_propertyChangeHandler);
-            removeSystemHandlers(MouseEvent.MOUSE_WHEEL, mouseWheelHandler, mouseWheelHandler);            
+        }
+    }
+    
+    /**
+     *  Boolean to let us know if we need to add system handlers or not.
+     *  We can't do this early on because systemManager may be null
+     */ 
+    private var systemListenersNeeded:Boolean = true;
+    
+    /**
+     *  @private
+     *  
+     *  Need to add system handlers in commitProperties() because at 
+     *  createChildren() time, systemManager may be null (it's null 
+     *  when it's parent (or grandparent) isn't added to the display list yet).
+     */
+    override protected function commitProperties():void
+    {
+        if (systemListenersNeeded)
+        {
+            addSystemHandlers(MouseEvent.MOUSE_WHEEL, mouseWheelHandler, mouseWheelHandler);
+            systemListenersNeeded = false;
         }
     }
     

            return;

        var nSteps:uint = Math.abs(event.delta);
        var unit:ScrollUnit;

        // Scroll event.delta "steps".  If the VSB is up, scroll vertically,
        // if -only- the HSB is up then scroll horizontally.
         
        if (verticalScrollBar && verticalScrollBar.visible)
        {
            unit = (event.delta < 0) ? ScrollUnit.DOWN : ScrollUnit.UP;
            for(var vStep:int = 0; vStep < nSteps; vStep++)
            {
                var vspDelta:Number = vp.getVerticalScrollPositionDelta(unit);
                if (!isNaN(vspDelta))
                    vp.verticalScrollPosition += vspDelta;
            }

        }
        else if (horizontalScrollBar && horizontalScrollBar.visible)
        {
            scrollUnit = (event.delta < 0) ? ScrollUnit.LEFT : ScrollUnit.RIGHT;
            for(var hStep:int = 0; hStep < nSteps; hStep++)
            {
                var hspDelta:Number = vp.getHorizontalScrollPositionDelta(scrollUnit);
                if (!isNaN(hspDelta))
                    vp.horizontalScrollPosition += hspDelta;
            }
