Editorscript to change materials problem

In the code below I search for a material with a specific name in my selection and replace it with supplied material.
My debug log reports a changed material name but in my view nothing happens and the object still has the same material.

Any clue whats wrong with my script?

public class SwitchMaterialsTest extends ScriptableWizard
{
	var replaceMaterialName 	:String;
	var newMaterial				:Material;


	new function OnGUI() :void
	{
		var allowSceneObjects : boolean = !EditorUtility.IsPersistent (this);
		
		replaceMaterialName = EditorGUILayout.TextField("replace material name: ", replaceMaterialName);
		newMaterial = EditorGUILayout.ObjectField("new material:", newMaterial, Material, allowSceneObjects); 

		if(GUILayout.Button("Replace")) 
		{
			Replace();
		}
	}

    @MenuItem("test/Switch Materials test")
    static function Init() :void
    {
    	var window :SwitchMaterialsTest = EditorWindow.GetWindow(SwitchMaterialsTest, false, "Material Switcher");
    }
    
    
	
    function Replace() :void
    {
		for (var item :GameObject  in Selection.gameObjects) 
		{
		 	// Grab all renderers in gameobjects and childs
		 	var rRenderers = item.GetComponentsInChildren(Renderer);
		 	
		 	for (var rRenderer :Renderer in rRenderers)
		 	{
		 		var materials = rRenderer.sharedMaterials;
				
		 		for(var mat :Material in materials)
		 		{
				 	if(mat.name == replaceMaterialName)
				 	{
				 		mat = newMaterial;
				 		Debug.Log(mat.name);
				 	}
				 }
			 }
		 }	
	}
}

Ok figured it out with a fresh view, i need to apply the chaged materials with rRenderer.sharedMaterials = rMaterials; after the materials for loop.

		 	for (var rRenderer :Renderer in rRenderers)
		 	{
		 		var rMaterials = rRenderer.sharedMaterials;
				
		 		for(var mat :Material in rMaterials)
		 		{
				 	if(mat.name == replaceMaterialName)
				 	{
				 		mat = newMaterial;
				 		Debug.Log(mat.name);
				 	}
				 }
				 
				 rRenderer.sharedMaterials = rMaterials;
			 }