         collectionIterator = collection.createCursor(); //IViewCursor(collection);
         // trace("ListBase added change listener");
         collection.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler, false, 0, true);
-		
+        
         clearSelectionData();
 
         var event:CollectionEvent = new CollectionEvent(CollectionEvent.COLLECTION_CHANGE);

     */
    protected function addDragData(dragSource:Object):void // actually a DragSource
    {
		// The Hallo drag drop data format
		dragSource.addHandler(copySelectedItems, "items");
		
		// The Spark drag drop data format
		dragSource.addHandler(copySelectedItemsForDragDrop, "itemsByIndex");

		// Calculate the index of the focus item within the vector
		// of ordered items returned for the "itemsByIndex" format.
		var caretIndex:int = 0;
		var draggedIndices:Array = selectedIndices;
		var count:int = draggedIndices.length;
		for (var i:int = 0; i < count; i++)
		{
			if (mouseDownIndex > draggedIndices[i])
				caretIndex++;
		}
		dragSource.addData(caretIndex, "caretIndex");
    }
	
	/**
	 *  @private
	 */
	private function copySelectedItemsForDragDrop():Vector.<Object>
	{
		// Copy the vector so that we don't modify the original
		// since selectedIndices returns a reference.
		var draggedIndices:Array = selectedIndices.slice(0, selectedIndices.length);
		var result:Vector.<Object> = new Vector.<Object>(draggedIndices.length);
		
		// Sort in the order of the data source
		draggedIndices.sort();
		
		// Copy the items
		var count:int = draggedIndices.length;
		for (var i:int = 0; i < count; i++)
			result[i] = dataProvider.getItemAt(draggedIndices[i]);  
		return result;
	}

    /**
     *  Returns the index where the dropped items should be added 

    private function mouseLeaveHandler(event:Event):void
    {
        mouseDownPoint = null;
        mouseDownIndex = -1;

        mouseIsUp();

