diff --git a/doc/lfun/InformDefend b/doc/lfun/InformDefend
index d6a401e..7fa975d 100644
--- a/doc/lfun/InformDefend
+++ b/doc/lfun/InformDefend
@@ -19,7 +19,7 @@
 =========
 
    enemy
-     Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
+      Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
 
 
 BESCHREIBUNG
@@ -28,15 +28,14 @@
    Es ist moeglich, dass Objekte ueber Angriffe auf Lebewesen
    informiert werden, sofern diese Objekte bei dem angegriffenen
    Lebewesen mittels AddDefender() angemeldet wurden und sich der
-   selben Umgebung befinden.
-   Zumeist wird es sich bei den Objekten natuerlich ebenfalls um
-   andere Lebewesen handeln, die das Lebewesen, bei dem sie angemeldet
-   sind, verteidigen sollen.
-   Bei einem Angriff auf das Lebewesen werden alle Objekte per Aufruf
-   von InformDefend() darueber informiert, wobei der Angreifer als
-   Parameter uebergeben wird.
-   Standardmaessig ist diese Funktion in Lebewesen bereits definiert,
-   wobei der Skill SK_INFORM_DEFEND, sofern vorhanden, aufgerufen wird.
+   selben Umgebung befinden. Zumeist wird es sich bei den Objekten
+   natuerlich ebenfalls um andere Lebewesen handeln, die das
+   Lebewesen, bei dem sie angemeldet sind, verteidigen sollen. Bei
+   einem Angriff auf das Lebewesen werden alle Objekte per Aufruf von
+   InformDefend() darueber informiert, wobei der Angreifer als
+   Parameter uebergeben wird. Standardmaessig ist diese Funktion in
+   Lebewesen bereits definiert, wobei der Skill SK_INFORM_DEFEND,
+   sofern vorhanden, aufgerufen wird.
 
 
 BEISPIEL
@@ -44,28 +43,40 @@
 
    Sehr beliebt sind in Gilden NPCs, die den Beschwoerer begleiten und
    verteidigen, z.B. beschworene Daemonen:
-     inherit "std/npc";
-     include <properties.h>
-     object owner;
-     void create()
-     { ::create();
-       SetProp(P_NAME,"Daemon");
-       ...
-     }
+
+   inherit "/std/npc";
+
+   #include <properties.h>
+
+   object owner;
+
+   protected void create()
+   {
+     ::create();
+     SetProp(P_NAME,"Daemon");
+     ...
+   }
+
    // nach Clonen des Daemons folgende Funktion mit Beschwoerer als
    // Parameter aufrufen
-     Identify(object caster)
-     { if(!objectp(caster))
-         call_out(#'remove,0);
-       owner=caster;
-       owner->AddDefender(this_object());
-     }
+
+   void Identify(object caster)
+   {
+     if(!objectp(caster))
+       call_out(#'remove,0);
+     owner=caster;
+     owner->AddDefender(this_object());
+   }
+
    // folgende Funktion wird automatisch aufgerufen, wenn der
    // Beschwoerer angegriffen wird
-     void InformDefend(object enemy)
-     { if(!IsEnemy(enemy)&&enemy!=owner)
-         Kill(enemy);
-     }
+
+   public void InformDefend(object enemy)
+   {
+     if(!IsEnemy(enemy)&&enemy!=owner)
+       Kill(enemy);
+   }
+
    Soll der Daemon sich auch in ein Team einordnen, in welchem sich der
    Beschwoerer eventuell befindet, so ist zusaetzlich AssocMember() in
    diesem Beschwoerer aufzurufen, wobei der Daemon als Parameter
@@ -75,7 +86,8 @@
 SIEHE AUCH
 ==========
 
-   AddDefender(), RemoveDefender(), DefendOther(), Kill(), IsEnemy(),
-   P_DEFENDERS, /std/living/combat.c, /sys/new_skills.h
+   AddDefender(), RemoveDefender(), QueryDefenders(),
+   QueryPresentDefenders(), QueryNearDefenders(), DefendOther(),
+   *../props/P_DEFENDER*, /std/living/combat.c
 
-Last modified: Thu Jul 29 18:48:45 1999 by Patryn
+Letzte Aenderung: 28.10.2022, Bugfix
