                 {
                 }
             }
-            
-            // if message, try setting that
+        }
+        
+        if (messageChanged)
+        {
+            messageChanged = false;
+            
             if (messageFunction != null)
             {
                 messageText = messageFunction(data);

    /**
     *  @private
     */
    private var dataChanged:Boolean;
    
    /**
     *  @private
     */
    override public function set data(value:Object):void
    {
        super.data = value;
        
        dataChanged = true;
        invalidateProperties();
    }
    
    /**
     *  @private
     */
    override public function set label(value:String):void
    {
        super.label = value;
        
        dataChanged = true;
        invalidateProperties();
    }
    

     *  UIComponent.measureText() because we are adding a few additional styles 
     *  to it based on headerStyleName and messageStyleName.
     */
    private function measureMessageText(text:String):TextLineMetrics
    {
        // Copied from UIComponent.measureText()
        cachedMessageTextFormat = determineTextFormatWithGetStyleFunction(messageGetStyleFunction, cachedMessageTextFormat);
        return cachedMessageTextFormat.measureText(text);
    }
    
    /**
