         {
             dragScrollingInterval = setInterval(dragScroll, 15);
         }
-		
-		if (dragEnabled)
-			mouseDownIndex = itemRendererToIndex(item);
+        
+        if (dragEnabled)
+            mouseDownIndex = itemRendererToIndex(item);
 
         // If dragEnabled is true, clicks on selected contents should cause
         // a selection change on mouse up instead of mouse down. Otherwise,

    protected function mouseUpHandler(event:MouseEvent):void
    {
        mouseDownPoint = null;
		mouseDownIndex = -1;
        //trace("mouseUp");
        var item:IListItemRenderer = mouseEventToItemRenderer(event);
        var pt:Point = itemRendererToIndices(item);

     */
    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 
