problem with prerender callbacks ....

Hello everyone, it's been a long time I didn't post on script spot !

I have a problem with a preRenderEval callback. I want to modify geometry at each rendered frame with a function I made.
It works fine if I render only one frame, and my function does work.

But when I want to render more than 1 frame, renderer fails at the beginning of the second frame.
I just can't figure out what I am doing wrong ....

Could somebody help me.

try(delete $ref_uv*)catch()
callbacks.removeScripts id:#MrGAG
function gag_func = 
	grille_uv = $Plane01
	min_point_u = grille_uv.min.y
	min_point_v = grille_uv.min.z
	uv_min = sphere radius:2 name:"ref_uv_min"
	uv_min.pos.y = min_point_u 
	uv_min.pos.z = min_point_v
	print( "ref_uv_min_u : " + uv_min.pos.y as string)
	print( "grille_uv.min.y: " + grille_uv.min.y as string)
	max_point_u = grille_uv.max.y
	max_point_v = grille_uv.max.z
	uv_max = sphere radius:2 name:"ref_uv_max"
	uv_max.pos.y = max_point_u 
	uv_max.pos.z = max_point_v
	print( "ref_uv_max_u : " + uv_max.pos.y as string)
	print( "grille_uv.max.y: " + grille_uv.max.y as string)
	grille_h = uv_max.pos.z  - uv_min.pos.z 
	grille_w = uv_max.pos.y  - uv_min.pos.y	
	sel_set = selectionSets["dechets_reactor"]
	for o=1 to sel_set.count do
		id_rand_val = random 1 10
		addModifier sel_set[o] (UVWmap())
		convertToMesh sel_set[o] 
		-- resolution de l'UV en rapport avec les dimensions du plan de reference
		o_u =  ((sel_set[o] .pos.y - uv_min.pos.y)/grille_w)
		o_v =  ((sel_set[o] .pos.z - uv_min.pos.z)/grille_h)
		for i=1 to (meshop.getNumVerts sel_set[o]) do
			meshop.setMapVert sel_set[o] 1 i [o_u,o_v,0]
			hey = meshop.getMapVert sel_set[o] 1 i --[0,0,0]
			print hey
callbacks.addScript #preRenderEval "gag_func()" id:#MrGAG