diff --git a/doc/lfun/normalize_defend_args b/doc/lfun/normalize_defend_args
new file mode 100644
index 0000000..7b41e74
--- /dev/null
+++ b/doc/lfun/normalize_defend_args
@@ -0,0 +1,89 @@
+
+normalize_defend_args()
+***********************
+
+
+FUNKTION
+========
+
+   protected nomask void normalize_defend_args(int dam,
+      string|string* dam_types, int|mapping si_spell, object enemy)
+
+
+DEFINIERT IN
+============
+
+   /std/living/combat.c
+
+
+ARGUMENTE
+=========
+
+   Die Argumente sind die Argumente, welche Defend() uebergeben
+   bekommt (siehe dort!)
+
+
+BESCHREIBUNG
+============
+
+   Defend bekommt aus historischem Code haeufig Argumente uebergeben,
+   die nicht der aktuellen Konvention entsprechen (z.B. si_spell als 0
+   oder 1 statt eines Mappings). Damit nun nicht jedes Objekt seine
+   eigene Anpassung vornehmen muss und dabei evtl. noch etwas
+   vergessen wird, kann man mit dieser Funktion die Argumente genauso
+   "normieren", wie es in der Standardlib in Defend() auch gemacht
+   wuerde.
+
+   Dieses wird ganz dringend empfohlen statt diese Normierung selber
+   vorzunehmen. Und sollte es hier Aenderungen geben, bekommt man
+   diese automatisch mit.
+
+   Nach dem Aufruf dieser Funktion (Argumente als Referenz
+   uebergeben!) liegen die Argumente dann wie folgt vor:
+
+   dam
+      ein Integer (unveraendert)
+
+   dam_types
+      ein Array von Schadenstypen
+
+   si_spell
+      ein Mapping - wenn es neu angelegt wurde, enthaelt es die
+      Eintraege SP_PHYSICAL_ATTACK, SP_SHOW_DAMAGE, SP_REDUCE_ARMOUR
+      und EINFO_DEFEND. SP_PHYSICAL_ATTACK und SP_SHOW_DAMAGE sind 1,
+      wenn si_spell 0 wahr, sonst 1.
+
+   enemy
+      ist das Objekt des Gegners oder this_player()
+
+   Alternativ zum Ueberschreiben von Defend() und Nutzung dieser
+   Funktion ist haeufig auch InternalModifyDefend() gut geeignet. Dort
+   muss *keine* eigene Normierung der uebergebenen Argumente mehr
+   vorgenommen werden!
+
+
+BEISPIELE
+=========
+
+   // Ein eigenes Defend soll Dinge tun, bevor das geerbte Defend() gerufen
+   // wird. Um den Code zu vereinfachen, sollen die Typen der Argumente aber
+   // schon sicher in einem "normierten Zustand" sein.
+   public int Defend(int dam, string|string* dam_types, int|mapping spell,
+                     object enemy)
+   {
+     // Uebergabe per Referenz noetig!
+     normalize_defend_args(&dam, &dam_type, &spell, &enemy);
+     if (member(dam_types, DT_FIRE) > -1
+         && si_spell[SP_NAME] == "Drachenfeuer")
+       dam *= 2; // Schaden verdoppeln
+     return ::Defend(dam, dam_types, si_spell, enemy);
+   }
+
+
+SIEHE AUCH
+==========
+
+   Verwandt:
+      InternalModifyDefend(), Defend(), DefendInfo()
+
+16.01.2019 Zesstra
