 			mesh.bindings.removeCallback('visible', meshVisibilityChangedHandler);
 			mesh.bindings.removeCallback('insideFrustum', meshVisibilityChangedHandler);
 			mesh.bindings.removeCallback('effect', meshEffectChangedHandler);
-			mesh.materialChanged.remove(meshMaterialChangedHandler);
 			mesh.frameChanged.remove(meshFrameChangedHandler);
 			mesh.geometryChanged.remove(meshGeometryChangedHandler);
 			

			drawCalls.length = 0;
			
			var meshesWithSameEffect : Vector.<Mesh> = _effectToMeshes[oldEffect];
			
			meshesWithSameEffect.splice(meshesWithSameEffect.indexOf(mesh), 1);
			if (meshesWithSameEffect.length == 0)
			{

		
		private function removeDrawCalls(mesh : Mesh, effect : Effect) : void
		{
			var meshBindings	: DataBindings	= mesh.bindings;
			
			// retrieve drawcalls
