     {
         StyleProtoChain.styleChanged(this, styleProp);
         if (styleProp && (styleProp != "styleName"))
-            dispatchEvent(new Event(styleProp + "Changed"));
-        else
-            dispatchEvent(new Event("allStylesChanged"));
+        { 
+            if (hasEventListener(styleProp + "Changed"))
+                dispatchEvent(new Event(styleProp + "Changed"));
+        }
+        else 
+        {
+            if (hasEventListener("allStylesChanged"))
+                dispatchEvent(new Event("allStylesChanged"));
+        }
     }
 
     /**

 *
 *  <p>The <code>resize</code> event is not
 *  dispatched until after the property changes.</p>
 *
 *  @eventType mx.events.ResizeEvent.RESIZE
 *  

                }
                else
                {
                    if (parentDocument.hasEventListener("propertyChange")) 
                    {
                        var event:PropertyChangeEvent =
                            PropertyChangeEvent.createUpdateEvent(parentDocument,
                                                                id,
                                                                parentDocument[id],
                                                                parentDocument[id]);
                        parentDocument.dispatchEvent(event);
                    }
                }
            }
        }
