Index: server/Map.cpp
===================================================================
--- server/Map.cpp	(révision 985)
+++ server/Map.cpp	(copie de travail)
@@ -366,6 +366,16 @@
 	for(std::vector<ECEntity*>::iterator it = entities.begin(); it != entities.end(); ++it)
 		if(*it != this && (*it)->Case() == Case() && !Like(*it) && (CanAttaq(*it) || Parent() && Parent()->CanAttaq(*it)))
 		{
+			if(abs(enemies-nb)>=( ((nb/10) > (enemies/10)) ? (enemies/10) : (nb/10) )) {
+				if(enemies>nb) {
+					enemies=enemies-nb;
+					nb=0;
+				} else {
+					// nb > enemies (no it can't be equal or the pre-last if is badly codded.
+					nb=nb-enemies;
+					enemies=0;
+				}
+			}
 			uint killed = rand() % (nb/2+enemies);
 			if(killed < nb/(4+enemies)) killed = nb/(4+enemies);
 			if(!killed)
