                     newInterval.push(i); 
                 }
             }
-            selectedIndices = newInterval;   
+            selectedIndices = newInterval;  
             ensureItemIsVisible(proposedNewIndex); 
         }
         // Entering the caret state with the Ctrl key down 
         else if (event.ctrlKey)
         {
-            // TODO (dsubrama) Finish up caret support, including visual 
-            // indicators to default renderers. 
-            handleCaretChange(proposedNewIndex, true);
-            //ensureItemIsVisible(proposedNewIndex); 
-        }
-        // Its just a new selection action  
+            var oldCaretIndex:Number = currentCaretIndex; 
+            setCurrentCaretIndex(proposedNewIndex);
+            var e:IndexChangedEvent = new IndexChangedEvent(IndexChangedEvent.ITEM_FOCUS_CHANGED); 
+            e.oldIndex = oldCaretIndex; 
+            e.newIndex = currentCaretIndex; 
+            dispatchEvent(e);    
+            ensureItemIsVisible(proposedNewIndex); 
+        }
+        // Its just a new selection action, select the new index.
         else
         {
-            selectedIndex = proposedNewIndex; 
+            selectedIndex = proposedNewIndex;
             ensureItemIsVisible(proposedNewIndex);
         }
     }

    {
        // TODO (jszeto) Clear the caret 
        var newIndex:Number; 
        if (!allowMultipleSelection)
        {
            // Single selection case 
            newIndex = dataGroup.getElementIndex(event.currentTarget as IVisualElement);  
            
            // Check to see if we're deselecting the currently selected item 
            if (event.ctrlKey && selectedIndex == newIndex)
                selectedIndex = NO_SELECTION;  
            // Otherwise, select the new item 
            else 
                selectedIndex = newIndex; 
        }
        else 
        {

    //
    //--------------------------------------------------------------------------
    
    //----------------------------------
    //  allowMultipleSelection
    //----------------------------------
