diff --git a/doc/sphinx/lfun/AddDefender.rst b/doc/sphinx/lfun/AddDefender.rst
index ae5b28b..dc55267 100644
--- a/doc/sphinx/lfun/AddDefender.rst
+++ b/doc/sphinx/lfun/AddDefender.rst
@@ -3,49 +3,38 @@
 
 FUNKTION
 --------
-::
 
-	void AddDefender(object friend);
+  void AddDefender(object friend);
 
 DEFINIERT IN
 ------------
-::
 
-	/std/living/combat.c
+  /std/living/combat.c
 
 ARGUMENTE
 ---------
-::
 
-	friend
-	  Objekt (normal Lebewesen), welches zukuenftig ueber Angriffe
-	  informiert werden soll oder diese sogar abwehrt.
+  friend
+    Objekt (normal Lebewesen), welches zukuenftig ueber Angriffe
+    informiert werden soll oder diese sogar abwehrt.
 
 BESCHREIBUNG
 ------------
-::
 
-	Ein Lebewesen, welches angegriffen wird, kann andere Objekte ueber
-	einen solchen Angriff per InformDefend() informieren oder ihnen
-	sogar die Moeglichkeit geben, per DefendOther() direkt in den
-	laufenden Angriff einzugreifen (Schaeden abwehren oder umwandeln).
-	Im Normalfall handelt es sich hierbei um andere Lebewesen, welche
-	als Verteidiger des angegriffenen Lebewesens auftreten: Daher der
-	Name der Funktion.
-	Die Objekte sind in Form eines Arrays in der Property P_DEFENDERS
-	abgespeichert und koennen dort abgerufen werden. Natuerlich kann
-	man weitere Objekte direkt dort eintragen, jedoch sollte man die
-	hierfuer bereitgestellte Funktionen AddDefender() verwenden.
-	Zum Loeschen von Eintraegen im Array steht ebenfalls eine Funktion
-	bereit: RemoveDefender().
+  Ein Lebewesen, welches angegriffen wird, kann andere Objekte ueber
+  einen solchen Angriff per InformDefend() informieren oder ihnen
+  sogar die Moeglichkeit geben, per DefendOther() direkt in den
+  laufenden Angriff einzugreifen (Schaeden abwehren oder umwandeln).
+  Im Normalfall handelt es sich hierbei um andere Lebewesen, welche
+  als Verteidiger des angegriffenen Lebewesens auftreten: Daher der
+  Name der Funktion.
 
 SIEHE AUCH
 ----------
-::
 
-	RemoveDefender(), InformDefend(), DefendOther(),
-	P_DEFENDERS, /std/living/combat.c
+  :doc:`RemoveDefender`, :doc:`QueryDefenders`, 
+  :doc:`QueryPresentDefenders`, :doc:`QueryNearDefenders`, 
+  :doc:`InformDefend`, :doc:`DefendOther`,
+  :doc:`../props/P_DEFENDER`, /std/living/combat.c
 
-
-Last modified: Thu Jul 29 18:48:45 1999 by Patryn
-
+Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/sphinx/lfun/DefendOther.rst b/doc/sphinx/lfun/DefendOther.rst
index 96c5b08..ba24a05 100644
--- a/doc/sphinx/lfun/DefendOther.rst
+++ b/doc/sphinx/lfun/DefendOther.rst
@@ -3,20 +3,17 @@
 
 FUNKTION
 --------
-::
 
     public <int|string*|mapping|object>* DefendOther(int dam,
                        string* dam_type, int|mapping si_spell, object enemy)
 
 DEFINIERT IN
 ------------
-::
 
     /std/living/combat.c
 
 ARGUMENTE
 ---------
-::
 
     int dam
       Der Schaden, der voraussichtlich beim zu verteidigenden Lebewesen
@@ -46,7 +43,6 @@
 
 BESCHREIBUNG
 ------------
-::
 
     Es ist moeglich, dass Objekte Angriffe auf Lebewesen abwehren oder
     umwandeln, sofern diese Objekte bei dem angegriffenen Lebewesen
@@ -116,7 +112,9 @@
 ----------
 
   Funktionen:
-    :doc:`../lfun/AddDefender`, :doc:`../lfun/RemoveDefender`, :doc:`../lfun/InformDefend`, :doc:`../lfun/Kill`, :doc:`../lfun/IsEnemy`, :doc:`../lfun/Defend`
+    :doc:`AddDefender`, :doc:`RemoveDefender`, :doc:`InformDefend`, :doc:`DefendOther`,
+    :doc:`Kill`, :doc:`IsEnemy`, :doc:`Defend`, :doc:`QueryDefenders`, 
+    :doc:`QueryPresentDefenders`, :doc:`QueryNearDefenders`, 
   Properties
     :doc:`../props/P_DEFENDERS`
   Objekte:
diff --git a/doc/sphinx/lfun/InformDefend.rst b/doc/sphinx/lfun/InformDefend.rst
index fbc0b12..df3fa9c 100644
--- a/doc/sphinx/lfun/InformDefend.rst
+++ b/doc/sphinx/lfun/InformDefend.rst
@@ -3,80 +3,88 @@
 
 FUNKTION
 --------
-::
 
-	void InformDefend(object enemy);
+  void InformDefend(object enemy);
 
 DEFINIERT IN
 ------------
-::
 
-	/std/living/combat.c
+  /std/living/combat.c
 
 ARGUMENTE
 ---------
-::
 
-	enemy
-	  Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
+  enemy
+    Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
 
 BESCHREIBUNG
 ------------
-::
 
-	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.
+  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.
 
 BEISPIEL
 --------
-::
 
-	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");
-	    ...
-	  }
-	// 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());
-	  }
-	// folgende Funktion wird automatisch aufgerufen, wenn der
-	// Beschwoerer angegriffen wird
-	  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
-	uebergeben wird.
+  Sehr beliebt sind in Gilden NPCs, die den Beschwoerer begleiten und
+  verteidigen, z.B. beschworene Daemonen:
+
+.. code-block:: pike
+
+  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
+
+  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
+
+  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
+  uebergeben wird.
 
 SIEHE AUCH
 ----------
-::
 
-	AddDefender(), RemoveDefender(), DefendOther(), Kill(), IsEnemy(),
-	P_DEFENDERS, /std/living/combat.c, /sys/new_skills.h
+  :doc:`AddDefender`, :doc:`RemoveDefender`, :doc:`QueryDefenders`, 
+  :doc:`QueryPresentDefenders`, :doc:`QueryNearDefenders`, 
+  :doc:`DefendOther`,
+  :doc:`../props/P_DEFENDER`, /std/living/combat.c
 
-
-Last modified: Thu Jul 29 18:48:45 1999 by Patryn
-
+Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/sphinx/lfun/QueryDefenders.rst b/doc/sphinx/lfun/QueryDefenders.rst
new file mode 100644
index 0000000..1269acc
--- /dev/null
+++ b/doc/sphinx/lfun/QueryDefenders.rst
@@ -0,0 +1,32 @@
+QueryDefenders()
+================
+
+FUNKTION
+--------
+
+  public object* QueryDefenders()
+
+DEFINIERT IN
+------------
+
+  /std/living/combat.c
+
+RUECKGABEWERT
+-------------
+
+  Object-Array mit den eingetragenen Defendern.
+
+BESCHREIBUNG
+------------
+
+  Gibt eine um zerstoerte Objekte bereinigte Kopie von P_DEFENDERS zurueck.
+
+SIEHE AUCH
+----------
+
+  :doc:`AddDefender`, :doc:`RemoveDefender`,
+  :doc:`QueryPresentDefenders`, :doc:`QueryNearDefenders`, 
+  :doc:`InformDefend`, :doc:`DefendOther`,
+  :doc:`../props/P_DEFENDER`, /std/living/combat.c
+
+Letzte Aenderung: 29.10.2022, Bugfix
diff --git a/doc/sphinx/lfun/QueryNearDefenders.rst b/doc/sphinx/lfun/QueryNearDefenders.rst
new file mode 100644
index 0000000..7b26903
--- /dev/null
+++ b/doc/sphinx/lfun/QueryNearDefenders.rst
@@ -0,0 +1,42 @@
+QueryNearDefenders()
+====================
+
+FUNKTION
+--------
+
+  public object* QueryNearDefenders(object* defenders)
+
+DEFINIERT IN
+------------
+
+  /std/living/combat.c
+
+ARGUMENTE
+---------
+
+  object* defenders: Ein Object-Array mit Defendern, aus denen ausgewaehlt 
+                     werden soll.
+
+RUeCKGABEWERT
+-------------
+
+  Object-Array mit den nahen Verteidigern (s.u.).
+
+BESCHREIBUNG
+------------
+
+  Gibt ein Object-Array mit den Defendern im Environment von this_object()
+  oder in this_object() zurueck, die in Reihe 1 stehen oder in keinem Team
+  sind.
+  Wird <defenders> nicht uebergeben, wird das Ergebnis von QueryDefenders()
+  benutzt.
+  
+SIEHE AUCH
+----------
+
+  :doc:`AddDefender`, :doc:`RemoveDefender`, :doc:`QueryDefenders`, 
+  :doc:`QueryPresentDefenders`,
+  :doc:`InformDefend`, :doc:`DefendOther`,
+  :doc:`../props/P_DEFENDER`, /std/living/combat.c
+
+Letzte Aenderung: 28.10.2022, Bugfix
\ No newline at end of file
diff --git a/doc/sphinx/lfun/QueryPresentDefenders.rst b/doc/sphinx/lfun/QueryPresentDefenders.rst
new file mode 100644
index 0000000..2eabd69
--- /dev/null
+++ b/doc/sphinx/lfun/QueryPresentDefenders.rst
@@ -0,0 +1,42 @@
+QueryPresentDefenders()
+=======================
+
+FUNKTION
+--------
+
+  public object* QueryPresentDefenders(object* defenders)
+
+DEFINIERT IN
+------------
+
+  /std/living/combat.c
+
+ARGUMENTE
+---------
+
+  object* defenders: Ein Object-Array mit Defendern, aus denen ausgewaehlt 
+                     werden soll.
+
+RUeCKGABEWERT
+-------------
+
+  Object-Array mit den eingetragenen Defendern im gleichen Environment oder
+  in this_object().
+
+BESCHREIBUNG
+------------
+
+  Gibt ein Object-Array mit den Defendern im Environment von this_object()
+  oder in this_object() zurueck.
+  Wird <defenders> nicht uebergeben, wird das Ergebnis von QueryDefenders()
+  benutzt.
+  
+SIEHE AUCH
+----------
+
+  :doc:`AddDefender`, :doc:`RemoveDefender`, :doc:`QueryDefenders`, 
+  :doc:`QueryNearDefenders`, 
+  :doc:`InformDefend`, :doc:`DefendOther`,
+  :doc:`../props/P_DEFENDER`, /std/living/combat.c
+
+Letzte Aenderung: 28.10.2022, Bugfix
\ No newline at end of file
diff --git a/doc/sphinx/lfun/RemoveDefender.rst b/doc/sphinx/lfun/RemoveDefender.rst
index 911e0c5..3e62b58 100644
--- a/doc/sphinx/lfun/RemoveDefender.rst
+++ b/doc/sphinx/lfun/RemoveDefender.rst
@@ -3,51 +3,40 @@
 
 FUNKTION
 --------
-::
 
-	void RemoveDefender(object friend);
+  void RemoveDefender(object friend);
 
 DEFINIERT IN
 ------------
-::
 
-	/std/living/combat.c
+  /std/living/combat.c
 
 ARGUMENTE
 ---------
-::
 
-	friend
-	  Objekt (normal Lebewesen), welches zukuenftig nicht mehr ueber
-	  Angriffe informiert werden soll und diese auch nicht mehr abwehrt.
+  friend
+    Objekt (normal Lebewesen), welches zukuenftig nicht mehr ueber
+    Angriffe informiert werden soll und diese auch nicht mehr abwehrt.
 
 BESCHREIBUNG
 ------------
-::
 
-	Ein Lebewesen, welches angegriffen wird, kann andere Objekte ueber
-	einen solchen Angriff per InformDefend() informieren oder ihnen
-	sogar die Moeglichkeit geben, per DefendOther() direkt in den
-	laufenden Angriff einzugreifen (Schaeden abwehren oder umwandeln).
-	Im Normalfall handelt es sich hierbei um andere Lebewesen, welche
-	als Verteidiger des angegriffenen Lebewesens auftreten: Daher der
-	Name der Funktion. Ausserdem besteht die Einschraenkung, dass diese
-	Objekte in der gleichen Umgebung sein muessen, wie das zu
-	verteidigende Lebewesen.
-	Die Objekte sind in Form eines Arrays in der Property P_DEFENDERS
-	abgespeichert und koennen dort abgerufen werden. Natuerlich kann
-	man alte Objekte direkt dort loeschen, jedoch sollte man die
-	hierfuer bereitgestellte Funktionen RemoveDefender() verwenden.
-	Zum Hinzufuegen von Eintraegen im Array steht ebenfalls eine
-	Funktion bereit: AddDefender().
+  Ein Lebewesen, welches angegriffen wird, kann andere Objekte ueber
+  einen solchen Angriff per InformDefend() informieren oder ihnen
+  sogar die Moeglichkeit geben, per DefendOther() direkt in den
+  laufenden Angriff einzugreifen (Schaeden abwehren oder umwandeln).
+  Im Normalfall handelt es sich hierbei um andere Lebewesen, welche
+  als Verteidiger des angegriffenen Lebewesens auftreten: Daher der
+  Name der Funktion. Ausserdem besteht die Einschraenkung, dass diese
+  Objekte in der gleichen Umgebung sein muessen, wie das zu
+  verteidigende Lebewesen.
 
 SIEHE AUCH
 ----------
-::
 
-	AddDefender(), InformDefend(), DefendOther(),
-	P_DEFENDERS, /std/living/combat.c
+  :doc:`AddDefender`, :doc:`QueryDefenders`, 
+  :doc:`QueryPresentDefenders`, :doc:`QueryNearDefenders`, 
+  :doc:`InformDefend`, :doc:`DefendOther`,
+  :doc:`../props/P_DEFENDER`, /std/living/combat.c
 
-
-Last modified: Thu Jul 29 18:48:45 1999 by Patryn
-
+Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/sphinx/props/P_DEFENDERS.rst b/doc/sphinx/props/P_DEFENDERS.rst
index bc83fe5..862b372 100644
--- a/doc/sphinx/props/P_DEFENDERS.rst
+++ b/doc/sphinx/props/P_DEFENDERS.rst
@@ -3,44 +3,41 @@
 
 NAME
 ----
-::
 
-	P_DEFENDERS			"defenders"
+  P_DEFENDERS      "defenders"
 
 DEFINIERT IN
 ------------
-::
 
-	/sys/new_skills.h
+  /sys/new_skills.h
 
 BESCHREIBUNG
 ------------
-::
 
-	Diese Property wird in Lebewesen gesetzt, welche zum Beispiel durch
-	andere Lebewesen verteidigt werden. Die Verteidiger muessen
-	natuerlich bekannt sein, damit sie per InformDefend() ueber Angriffe
-	informiert werden und per DefendOther() in den laufenden Angriff
-	eingreifen koennen (zum Beispiel Schaeden abwehren oder umwandeln).
-	Es muessen jedoch nicht unbedingt Lebewesen oder echte Verteidiger
-	sein, auch beliebige Objekte koennen ueber Angriffe informiert
-	werden und in diese eingreifen. Allerdings besteht die
-	Einschraenkung, dass diese Objekte in der gleichen Umgebung sein
-	muessen, wie das zu verteidigende Lebewesen oder im zu verteidigenden
-	Lebewesen selbst.
-	Die Objekte, welche dies betrifft, sind in Form eines Arrays in
-	der Property P_DEFENDERS abgelegt.
-	Gesetzt und geloescht werden sollten die Eintraege dieses Arrays
-	jedoch nur mittels der dafuer bereitgestellten Funktionen
-	AddDefender() und RemoveDefender().
+  Diese Property wird in Lebewesen gesetzt, welche zum Beispiel durch
+  andere Lebewesen verteidigt werden. Die Verteidiger muessen
+  natuerlich bekannt sein, damit sie per InformDefend() ueber Angriffe
+  informiert werden und per DefendOther() in den laufenden Angriff
+  eingreifen koennen (zum Beispiel Schaeden abwehren oder umwandeln).
+  Es muessen jedoch nicht unbedingt Lebewesen oder echte Verteidiger
+  sein, auch beliebige Objekte koennen ueber Angriffe informiert
+  werden und in diese eingreifen. Allerdings besteht die
+  Einschraenkung, dass diese Objekte in der gleichen Umgebung sein
+  muessen, wie das zu verteidigende Lebewesen oder im zu verteidigenden
+  Lebewesen selbst.
+  Die Objekte, welche dies betrifft, sind in Form eines Arrays in
+  der Property P_DEFENDERS abgelegt.
+  
+  ACHTUNG:
+  Auf diese Property nicht von Hand zugreifen, sondern bitte die
+  entsprechende Zugriffsfunktion verwenden.
 
 SIEHE AUCH
 ----------
-::
 
-	AddDefender(), RemoveDefender(), InformDefend(), DefendOther(),
-	/std/living/combat.c
+  :doc:`AddDefender`, :doc:`RemoveDefender`, :doc:`QueryDefenders`, 
+  :doc:`QueryPresentDefenders`, :doc:`QueryNearDefenders`, 
+  :doc:`InformDefend`, :doc:`DefendOther`,
+  /std/living/combat.c
 
-
-Last modified: 21.09.2007, Zesstra
-
+Letzte Aenderung: 28.10.2022, Bugfix
