      *  Taking into account which modifier keys were clicked, the new
      *  selectedIndices interval is calculated. 
      */
-    private function calculateSelectedIndicesInterval(renderer:IVisualElement, shiftKey:Boolean, ctrlKey:Boolean):Array
+    private function calculateSelectedIndicesInterval(renderer:IVisualElement, shiftKey:Boolean, ctrlKey:Boolean):Vector.<Number>
     {
         var i:int; 
-        var interval:Array = []; 
+        var interval:Vector.<Number> = new Vector.<Number>();  
         var index:Number = dataGroup.getElementIndex(renderer); 
         
         if (!shiftKey)

    /**
     *  @private
     */
    public function set selectedItems(value:Array):void
    {
        var indices:Array;
        
        if (value)
        {
            indices = [];
            
            var count:int = value.length;
            
            for (var i:int = 0; i < count; i++)
            {
                //TODO (dsubrama) What exactly should we do if an 
                //invalid item is in the selectedItems array? 
                var index:Number = dataProvider.getItemIndex(value[i]);
                if (index != -1)
                { 

     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public function get selectedItems():Vector.<Object>
    {
        var result:Vector.<Object>;
        
        if (selectedIndices)
        {
            result = new Vector.<Object>();
            
            var count:int = selectedIndices.length;
            
