diff --git a/doc/lfun/FindDistantGroups b/doc/lfun/FindDistantGroups
index 507b72e..efb3354 100644
--- a/doc/lfun/FindDistantGroups
+++ b/doc/lfun/FindDistantGroups
@@ -1,59 +1,85 @@
+
 FindDistantGroups()
+*******************
 
-FUNKTION:
-	varargs mixed FindDistantGroups(object pl, int dist, int dy, int dx)
 
-DEFINIERT IN:
-	/std/spellbook.c
+FUNKTION
+========
 
-ARGUMENTE:
-	pl   - Caster
-	dist - Entfernung
-	dy   - Tiefe      (default 100)
-	dx   - Breite     (default 100*MAX_TEAM_ROWLEN)
+   varargs mixed FindDistantGroups(object pl, int dist, int dy, int dx)
 
-BESCHREIBUNG:
-	Ermitteld feindliche (bei Spielern NPCs, bei NPCs Spieler) und
-	freundliche (bei Spielern Spieler, bei NPCs NPCs) Lebewesen,
-	die sich in Entfernung <dist> in einem Bereich der Breite <dx>
-	und Tiefe <dy> befinden.
 
-RUECKGABEWERT:
-	Array mit zwei Arrays als Inhalt:
-	({ feindliche Lebewesen, freundliche Lebewesen })
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-	Die Entfernungsangaben sind als cm. zu verstehen.
-	Jedes Lebewesen belegt 50cm x 50cm mit Abstand 50cm
-	zum naechsten Lebewesen in jeder Richtung.
-	Die Breitenangabe wirkt sich nur in der Anzahl der
-	Lebewesen aus, die zufaellig pro Reihe ausgewaehlt werden.
-	Die Skillattribute SA_RANGE und SA_EXTENSION werden beruecksichtigt.
+   /std/spellbook.c
 
-BEISPIEL:
-	dist=200, dy=200, dx=200, ein Punkt = 50cm x 50cm
-	   . . . . . . . . . . . . .
-	3. . . . . . . G . . . . . .
-	   . . . . . . . . . . . . .
-	2. . . . . . G . G . . . . .dist+dy/2-+
-	   . . . . . . . . . . . . .          |  
-	1. . . . . G . G . G . . . .     dist +-+ (Gegner G)
-	---.-.-.-.-.-.-.-.-.-.-.-.-.          | |
-	1. . . . . F . F . F . . . .dist-dy/2-+ | (Freunde F)
-	   . . . . . . . . . . . . .            |
-	2. . . . . . F . S . . . . .------------+ (Reihe des Spielers S)
-	   . . . . . . . . . . . . .
-	3. . . . . . . F . . . . . .
-	   . . . . . . . . . . . . .
-	Abgedeckter Bereich:           100cm  bis  300cm
-                Reihe 3:  375cm..425cm         375>300 -> nicht erwischt
-                Reihe 2:  275cm..325cm         275<300 -> erwischt
-	Gegner  Reihe 1:  175cm..225cm 100<175,225<300 -> erwischt
-	Freunde Reihe 1:   75cm..125cm 100<125         -> erwischt
-	        Reihe 2:  -25cm...25cm 100> 25         -> nicht erwischt
-                Reihe 3: -125cm..-75cm 100>-75         -> nicht erwischt
-	Ergebnis: ({({G,G,G,G}),({F,F})})
-	(Maximal 2 Lebewesen pro Reihe bei Breite 200).
 
-SIEHE AUCH:
-	teams, FindDistantGroup
+ARGUMENTE
+=========
+
+   pl   - Caster
+   dist - Entfernung
+   dy   - Tiefe      (default 100)
+   dx   - Breite     (default 100*MAX_TEAM_ROWLEN)
+
+
+BESCHREIBUNG
+============
+
+   Ermitteld feindliche (bei Spielern NPCs, bei NPCs Spieler) und
+   freundliche (bei Spielern Spieler, bei NPCs NPCs) Lebewesen,
+   die sich in Entfernung <dist> in einem Bereich der Breite <dx>
+   und Tiefe <dy> befinden.
+
+
+RUECKGABEWERT
+=============
+
+   Array mit zwei Arrays als Inhalt:
+   ({ feindliche Lebewesen, freundliche Lebewesen })
+
+
+BEMERKUNGEN
+===========
+
+   Die Entfernungsangaben sind als cm. zu verstehen.
+   Jedes Lebewesen belegt 50cm x 50cm mit Abstand 50cm
+   zum naechsten Lebewesen in jeder Richtung.
+   Die Breitenangabe wirkt sich nur in der Anzahl der
+   Lebewesen aus, die zufaellig pro Reihe ausgewaehlt werden.
+   Die Skillattribute SA_RANGE und SA_EXTENSION werden beruecksichtigt.
+
+
+BEISPIEL
+========
+
+   dist=200, dy=200, dx=200, ein Punkt = 50cm x 50cm
+      . . . . . . . . . . . . .
+   3. . . . . . . G . . . . . .
+      . . . . . . . . . . . . .
+   2. . . . . . G . G . . . . .dist+dy/2-+
+      . . . . . . . . . . . . .          |
+   1. . . . . G . G . G . . . .     dist +-+ (Gegner G)
+   ---.-.-.-.-.-.-.-.-.-.-.-.-.          | |
+   1. . . . . F . F . F . . . .dist-dy/2-+ | (Freunde F)
+      . . . . . . . . . . . . .            |
+   2. . . . . . F . S . . . . .------------+ (Reihe des Spielers S)
+      . . . . . . . . . . . . .
+   3. . . . . . . F . . . . . .
+      . . . . . . . . . . . . .
+   Abgedeckter Bereich:           100cm  bis  300cm
+           Reihe 3:  375cm..425cm         375>300 -> nicht erwischt
+           Reihe 2:  275cm..325cm         275<300 -> erwischt
+   Gegner  Reihe 1:  175cm..225cm 100<175,225<300 -> erwischt
+   Freunde Reihe 1:   75cm..125cm 100<125         -> erwischt
+           Reihe 2:  -25cm...25cm 100> 25         -> nicht erwischt
+           Reihe 3: -125cm..-75cm 100>-75         -> nicht erwischt
+   Ergebnis: ({({G,G,G,G}),({F,F})})
+   (Maximal 2 Lebewesen pro Reihe bei Breite 200).
+
+
+SIEHE AUCH
+==========
+
+   teams, FindDistantGroup
