problem was that the terrain was removed from memory (level_free!) and the decal routine seems to lag one frame behind. Of course it accessed the non existant terrain then.
That was the only plausible reason I found. it is directly related to a decal on a terrain.
ent_purge(map__sLevel.entTerrain); /* remove decals */
ptr_remove(map__sLevel.entTerrain);
wait (2); /* decals seem to need time... */
level_free();