      */
     protected function itemShowingCaret(index:int, showsCaret:Boolean):void
     {
+        // if this method is called from anywhere besides the updateRenderer(), 
+        // then we want transitions for caret to play.  This way if it's called 
+        // from the keyDown handler or through 
+        // commitProperties(), transitions will be enabled for it.
+        if (!inUpdateRenderer)
+            turnOnCaretTransitionsForOneFrame();
+        
         // Subclasses must override this method to display the caret.
     }
     

            // the selected index backing variable.
            adjustSelection(selectedIndex - 1);
        }
    }
    
    //--------------------------------------------------------------------------

        // call super.updateRenderer() last because super.updateRenderer()
        // sets the data on the item renderer, and that should be done last.
        super.updateRenderer(renderer, itemIndex, data); 
        
        // let us know we're out of updateRenderer()
        inUpdateRenderer = false;
    }
    
    /**
