     //  Variables
     //
     //--------------------------------------------------------------------------
-	 /**
-     *  @private
-     *  A flag indicating that selection has changed
-     */
-    private var selectionChanged:Boolean = false;
+	
     private var labelChanged:Boolean = false;
-	private const PAGE_SIZE:int = 5;
 	
 	//--------------------------------------------------------------------------
     //

    //
    //--------------------------------------------------------------------------
    
    /**
	 *  Called when the dropDown dispatches a selectionChanged event. 
	 *  
	 *  @langversion 3.0
	 *  @playerversion Flash 10
	 *  @playerversion AIR 1.5
	 *  @productversion Flex 4
	 */ 
    protected function dropDown_selectionChangedHandler(event:IndexChangedEvent):void
    {
    	//trace("DropDownList.dropDown_selectionChangedHandler [CLOSE]");
        
        closeDropDown(true);
    }
    
    /**
	 *  Called when the dataProvider changes 
	 *  
	 *  @langversion 3.0
	 *  @playerversion Flash 10
	 *  @playerversion AIR 1.5
	 *  @productversion Flex 4
	 */ 
    protected function collection_changeHandler(event:CollectionEvent):void
    {
    	// TODO (jszeto) Change this to use ListBase implementation
    	
        var requiresValueCommit:Boolean = false;

        if (event.kind == CollectionEventKind.ADD)
        {
        	// Don't send a value commit. selectedItem remains the same
            if (selectedIndex >= event.location)
                _selectedIndex++;
        }
        else if (event.kind == CollectionEventKind.REMOVE)
        {
            for (var i:int = 0; i < event.items.length; i++)
            {
            	// TODO (jszeto) Do we need to use UID instead?
                //var uid:String = itemToUID(ce.items[i]);
                if (selectedItem == event.items[i])
                {
                    selectionChanged = true;
                }
            }
            if (selectionChanged)
            {
                if (_selectedIndex >= collection.length)
                    _selectedIndex = collection.length - 1;

                selectedIndexChanged = true;
                requiresValueCommit = true;
                invalidateProperties();
            }
            else if (selectedIndex >= event.location)
            {
                _selectedIndex--;
                selectedIndexChanged = true;
                requiresValueCommit = true;
                invalidateProperties();
            }
        
        }
        else if (event.kind == CollectionEventKind.REFRESH)
        {
            selectedItemChanged = true;
            // Sorting always changes the selection array
            requiresValueCommit = true;
            invalidateProperties();
        }
        else if (event.kind == CollectionEventKind.UPDATE)
        {
            if (event.location == selectedIndex ||
                event.items[0].source == selectedItem)
            {
            	selectedItem = event.items[0].source;
            }
        }
        else if (event.kind == CollectionEventKind.RESET)
        {
           /* collectionChanged = true;
            if (!selectedIndexChanged && !selectedItemChanged)
                selectedIndex = prompt ? -1 : 0;
            invalidateProperties();*/
            if (!selectedIndexChanged && !selectedItemChanged)
            	selectedIndex = 0;
        }
        
        if (requiresValueCommit)
            dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
    }
    
    /**
     *  @private
     */  
    /*private function dropDown_creationCompleteHandler(event:FlexEvent):void
    {
    	trace("DropDownList.dropDown_creationCompleteHandler called");
		dropDown.removeEventListener("creationComplete", dropDown_creationCompleteHandler);	
    	dropDown.addEventListener(IndexChangedEvent.SELECTION_CHANGED, dropDown_selectionChangedHandler);
    }*/
	
}
}
    {
    	super.partAdded(partName, instance);
 
 		if (instance == button)
    	{
    		instance.addEventListener(FlexEvent.BUTTON_DOWN, buttonDownHandler);
    	}
    }
    
    /**
