     /**
      *  @private
      *  Creates Panel's AccessibilityImplementation object.
-	 *  This method is called from Panel's
-	 *  partAdded() method, not its initializeAccessibility() method,
-	 *  because the PanelAccImpl needs to be attached
-	 *  to the Panel's titleBar.
-	 *  The partRemoved() method removes the acc impl from the titleDisplay.
+	 *  This method is called from Panel's initializeAccessibility() method.
      */
     mx_internal static function createAccessibilityImplementation(
                                 component:UIComponent):void
     {
-        // The AccessibilityImplementation is placed on the
-        // Panel's titleBar, not on the Panel itself.
-        // If it were placed on the Panel itself,
-        // the AccessibilityImplementations of the Panel's children
-        // would be ignored.
-        var titleDisplay:UIComponent = Panel(component).titleDisplay;
-        if (titleDisplay)
-        {
-            titleDisplay.accessibilityImplementation =
-				new PanelAccImpl(component);
-            
-			if (Panel(component).tabIndex > 0 && titleDisplay.tabIndex == -1)
-                titleDisplay.tabIndex = Panel(component).tabIndex;
-        }
-    }
-
+		// The TitleWindowAccImpl is attached
+		// not to the TitleWindow but to a special child Sprite.
+		// If it were attached to the TitleWindow itself,
+		// the AccessibilityImplementations of the TitleWindow's
+		// children would be ignored.
+		var accImpl:PanelAccImpl = new PanelAccImpl(component);
+		accImpl.attach();
+    }
+	
     //--------------------------------------------------------------------------
     //
     //  Constructor

    {
        return Panel(master).title;
    }
}

}

        role = AccConst.ROLE_SYSTEM_GROUPING;
    }

	//--------------------------------------------------------------------------
	//
	//  Variables
	//
	//--------------------------------------------------------------------------
	
	/**
	 *  @private
	 *  A Sprite which gets added to the Panel for the sole purpose
	 *  of holding the PanelAccImpl.
	 *  We have to make sure that the size of this Sprite is the same
	 *  as the size of the Panel so that the MSAA Location is correct.
	 */
	mx_internal var accImplSprite:Sprite;
	
	/**
	 *  @private
	 *  If the titleDisplay keeps an acc impl, it shows up as an accessible
	 *  object, in addition to the accImplSprite.
	 *  To prevent this, we remove the acc impl from the titleDisplay
	 *  and park it here.
	 */
	private var titleDisplayAccImpl:AccessibilityImplementation;
	
	//--------------------------------------------------------------------------
	//
	//  Overridden properties: AccImpl
	//
	//--------------------------------------------------------------------------
	
	//----------------------------------
	//  eventsToHandle
	//----------------------------------
	
	/**
	 *  @private
	 *  Array of events that we should listen for from the master component.
	 */
	override protected function get eventsToHandle():Array
	{
		return super.eventsToHandle.concat([ ResizeEvent.RESIZE,
											 SkinPartEvent.PART_ADDED,
											 SkinPartEvent.PART_REMOVED ]);
	}
	
    //--------------------------------------------------------------------------
    //
    //  Overridden methods: AccessibilityImplementation
