As I mentioned the crashing instruction (only randomly) is this: "snd_playing(*sndLoopHndl)".

I found that out with the following code:
Code:
void ent_sound_start(ENTITY* ent_,SOUND* sndBegin,SOUND* sndLoop,SOUND* sndEnd,var* sndBeginHndl,var* sndLoopHndl,var* sndEndHndl)
{	
	diag("\n main_ent_sound_start.1");
	snd_stop(*sndEndHndl);
	diag("\n main_ent_sound_start.2");
	if(sndBegin!=NULL)
	{
		diag("\n main_ent_sound_start.2.1");
		if(!snd_playing(*sndBeginHndl))
		{
			diag("\n main_ent_sound_start.2.1.1");
			if(!snd_playing(*sndLoopHndl))
			{
				diag("\n main_ent_sound_start.2.1.1.1");
				if(*sndBeginHndl==0)
				{
					diag("\n main_ent_sound_start.2.1.1.1.1");
					*sndBeginHndl=ent_playsound(ent_,sndBegin,SND_sfx_volume*SND_MULTIPLIER*SND_RANGE);
					diag("\n main_ent_sound_start.2.1.1.1.2");
				}
				diag("\n main_ent_sound_start.2.1.1.2");
			}
			diag("\n main_ent_sound_start.2.1.2");
		}
		diag("\n main_ent_sound_start.2.2");
	}
	diag("\n main_ent_sound_start.3");
	if(sndLoop!=NULL)
	{
		diag("\n main_ent_sound_start.3.1");
		if(!snd_playing(*sndBeginHndl))
		{
			diag("\n main_ent_sound_start.3.1.1");
			if(!snd_playing(*sndLoopHndl))
			{
				diag("\n main_ent_sound_start.3.1.1.1");
				*sndLoopHndl=ent_playloop(ent_,sndLoop,SND_sfx_volume*SND_MULTIPLIER*SND_RANGE);
				diag("\n main_ent_sound_start.3.1.1.2");
			}
			diag("\n main_ent_sound_start.3.1.2");
		}
		diag("\n main_ent_sound_start.3.2");
	}
	diag("\n main_ent_sound_start.4");
}



If it crashs, "main_ent_sound_start.2.1.1" is the last entry in acklog.txt.