Thanks for your input, EvilSOB!

It works with the following modification with my testmodel, a SimplySid.mdl from otter,
but it throws an error message, when I try it with the dozer.mdl of Wjbender.
Code:
for (iterate=0;iterate<vertices_source1;iterate++)	
		{
			temp1.x=source1.x+vbuffer_source1[iterate].x*source1.scale_x;
			temp1.y=source1.y+vbuffer_source1[iterate].y*source1.scale_z;
			temp1.z=source1.z+vbuffer_source1[iterate].z*source1.scale_y;
			
			//	=========  START of EvilSOB's suggestion	===============
			VECTOR new_norm;
			new_norm.x = vbuffer_source1[iterate].nx;
			new_norm.y = vbuffer_source1[iterate].ny;
			new_norm.z = vbuffer_source1[iterate].nz;
			vec_rotate(new_norm, source1.pan);
			//  vec_normalize(new_norm, 1);   //maybe?!?
			//
			merged_vbuffer[iterate].nx = new_norm.x;
			merged_vbuffer[iterate].ny = new_norm.z;
			merged_vbuffer[iterate].nz = new_norm.y;
			//	=========  END of EvilSOB's suggestion	===============
			VECTOR final;
			final.x=temp1.x;
			final.y=temp1.z;
			final.z=temp1.y;
			vec_rotate(final.x,source1.pan);

			merged_vbuffer[iterate].x=final.x;
			merged_vbuffer[iterate].y=final.z;
			merged_vbuffer[iterate].z=final.y;
			
//			merged_vbuffer[iterate].nx=vbuffer_source1[iterate].nx;
//			merged_vbuffer[iterate].nz=vbuffer_source1[iterate].ny;
//			merged_vbuffer[iterate].ny=vbuffer_source1[iterate].nz;

			merged_vbuffer[iterate].u1=vbuffer_source1[iterate].u1;
			merged_vbuffer[iterate].v1=vbuffer_source1[iterate].v1;
			merged_vbuffer[iterate].u2=vbuffer_source1[iterate].u2;
			merged_vbuffer[iterate].v2=vbuffer_source1[iterate].v2;
			
		}
		
		offsetv+=vertices_source1;
		
		for (iterate=0;iterate<vertices_source2;iterate++)	
		{
			temp1.x=source2.x+vbuffer_source2[iterate].x*source2.scale_x;
			temp1.y=source2.y+vbuffer_source2[iterate].y*source2.scale_z;
			temp1.z=source2.z+vbuffer_source2[iterate].z*source2.scale_y;
			
			//	=========  START of EvilSOB's suggestion	===============
			VECTOR new_norm;
			new_norm.x = vbuffer_source2[iterate+offsetv].nx;
			new_norm.y = vbuffer_source2[iterate+offsetv].ny;
			new_norm.z = vbuffer_source2[iterate+offsetv].nz;
			vec_rotate(new_norm, source2.pan);
			//  vec_normalize(new_norm, 1);   //maybe?!?
			//
			merged_vbuffer[iterate+offsetv].nx = new_norm.x;
			merged_vbuffer[iterate+offsetv].ny = new_norm.z;
			merged_vbuffer[iterate+offsetv].nz = new_norm.y;
			//	=========  END of EvilSOB's suggestion	===============
			VECTOR final;
			final.x=temp1.x;
			final.y=temp1.z;
			final.z=temp1.y;
			vec_rotate(final.x,source2.pan);
				
			merged_vbuffer[iterate+offsetv].x=final.x;
			merged_vbuffer[iterate+offsetv].y=final.z;
			merged_vbuffer[iterate+offsetv].z=final.y;
			
//			merged_vbuffer[iterate+offsetv].nx=vbuffer_source2[iterate].nx;
//			merged_vbuffer[iterate+offsetv].nz=vbuffer_source2[iterate].ny;
//			merged_vbuffer[iterate+offsetv].ny=vbuffer_source2[iterate].nz;

			merged_vbuffer[iterate+offsetv].u1=vbuffer_source2[iterate].u1;
			merged_vbuffer[iterate+offsetv].v1=vbuffer_source2[iterate].v1;
			merged_vbuffer[iterate+offsetv].u2=vbuffer_source2[iterate].u2;
			merged_vbuffer[iterate+offsetv].v2=vbuffer_source2[iterate].v2;
			
		}