 
         lastDragEvent = event;
 
-        if (enabled && iteratorValid && event.dragSource.hasFormat("items"))
+        if (enabled && iteratorValid && 
+            (event.dragSource.hasFormat("items") || event.dragSource.hasFormat("orderedItems")))
         {
             DragManager.acceptDragDrop(this);
             DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);

import mx.core.ScrollControlBase;
import mx.core.ScrollPolicy;
import mx.core.SpriteAsset;
import mx.core.UITextField;
import mx.core.mx_internal;
import mx.effects.IEffect;
import mx.effects.IEffectInstance;
import mx.effects.IEffectTargetHost;
import mx.effects.Tween;
import mx.events.CollectionEvent;

        hideDropFeedback(event);
        lastDragEvent = null;
        resetDragScrolling();
        
        if (!enabled)
            return;
        
        var dragSource:DragSource = event.dragSource;
        if (!dragSource.hasFormat("items") && !dragSource.hasFormat("orderedItems"))
            return;

        if (!dataProvider)
            // Create an empty collection to drop items into.
            dataProvider = [];

        var dropIndex:int = calculateDropIndex(event);

        if (dragSource.hasFormat("items"))
            insertItems(dropIndex, dragSource, event);
        else
            insertOrderedItems(dropIndex, dragSource, event);

        lastDragEvent = null;
    }
    
    /**
     *  @private 
     *  Insert for drag and drop, handles the Spark "orderedItems" data format.
     */
    private function insertOrderedItems(dropIndex:int, dragSource:DragSource, event:DragEvent):void
    {
        var items:Vector.<Object> = dragSource.dataForFormat("orderedItems") as Vector.<Object>;
        
        // Copy or move the items. No need to check whether the operation is
        // reorder within this list, as ListBase never creates the
        // "orderedItems" data format. This is a new data format from Spark List only. 
        collectionIterator.seek(CursorBookmark.FIRST, dropIndex);
        var count:int = items.length;
        for (var i:int = 0; i < count; i++)
        {
            if (event.action == DragManager.COPY)
            {
                collectionIterator.insert(copyItemWithUID(items[i]));
            }
            else if (event.action == DragManager.MOVE)
            {
                collectionIterator.insert(items[i]);
            } 
        }
    }
    
    /**
     *  @private
     *  Insert for drag and drop, handles the Halo "items" data format. 
     */
    private function insertItems(dropIndex:int, dragSource:DragSource, event:DragEvent):void
    {
        var items:Array = dragSource.dataForFormat("items") as Array;
        if (event.action == DragManager.MOVE && 
            dragMoveEnabled &&
            event.dragInitiator == this)
        {
            var indices:Array = selectedIndices;
            indices.sort(Array.NUMERIC);
            
            for (var i:int = indices.length - 1; i >= 0; i--)
            {
                collectionIterator.seek(CursorBookmark.FIRST, indices[i]);
                if (indices[i] < dropIndex)
                    dropIndex--;
                collectionIterator.remove();
            }
            clearSelected(false);
        }
        collectionIterator.seek(CursorBookmark.FIRST, dropIndex);
        
        for (i = items.length - 1; i >= 0; i--)
        {
            if (event.action == DragManager.COPY)
            {
                collectionIterator.insert(copyItemWithUID(items[i]));
            }
            else if (event.action == DragManager.MOVE)
            {
                collectionIterator.insert(items[i]);
            } 
        }
    }
    
    /**
