If you want to change properties of the material, please use at first Updating and at least Updated. These guaranties that only one time an Update-call is fired.
// Sample Material m = new Material(); m.Updating(); m.Ambient = Color.Red; m.Specular = Color.Blue; . . m.Updated(); // now the virtual method Update will be called