             var skinPartID:String = event.property as String;
             if(skinParts[skinPartID] != null)
             {
-                this[skinPartID] = event.newValue;
-                
-                if (!(this[skinPartID] is IFactory))
-                    partAdded(skinPartID, this[skinPartID]);
+            	if (event.newValue == null)
+            	{
+            		if (!(this[skinPartID] is IFactory))
+						partRemoved(skinPartID, this[skinPartID]);
+            		this[skinPartID] = event.newValue;
+            	}
+            	else
+            	{
+                	this[skinPartID] = event.newValue;                
+                	if (!(this[skinPartID] is IFactory))
+	                    partAdded(skinPartID, this[skinPartID]);
+	            }
             }
         }
     }

    private var skinStateIsDirty:Boolean = false;
}

}
    {
        if (offstageHandler == null)
            offstageHandler = onstageHandler;
        
        // TODO (jszeto) Make marshall plan compliant    
        if (systemManager)
        {    
        	// For on-stage events
        	systemManager.addEventListener(eventType, onstageHandler, true /*capture*/);
        	// For off-stage events
        	systemManager.stage.addEventListener(eventType, offstageHandler);
        }
    }
    
    /**
