diff --git a/doc/lfun/GetGroupMembers b/doc/lfun/GetGroupMembers
index ef70aa3..8c765d7 100644
--- a/doc/lfun/GetGroupMembers
+++ b/doc/lfun/GetGroupMembers
@@ -1,36 +1,60 @@
+
 GetGroupMembers()
-FUNKTION:
-     string *GetGroupMembers(string grp)
+*****************
 
-DEFINIERT IN:
-     /p/daemon/materialdb.c (MATERIALDB)
 
-ARGUMENTE:
-     string grp - Gruppenname
+FUNKTION
+========
 
-BESCHREIBUNG:
-     Gibt alle dieser Gruppe zugehoerigen Materialien zurueck. Dazu gut, sich
-     einen Ueberblick ueber die aktuelle Liste zu verschaffen.
+   string *GetGroupMembers(string grp)
 
-RUECKGABEWERT:
-     Array von Strings mit Materialien oder ({})
 
-BEISPIELE:
-     // wir wollen irgend ein Metall haben, nennen dies aber beim Namen
-     int ind;
-     string* likeit;
-     likeit=MATERIALDB->GetGroupMembers(MATGROUP_METAL);
-     ind=random(sizeof(likeit));
-     ...
-     write("Der Schmied sagt: Mir fehlt noch "+
-	   MATERIALDB->MaterialName(likeit[ind], WER, 100)+".\n");
-     ...
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     Konzepte:	  material, materialerkennung
-     Grundlegend: P_MATERIAL, /sys/thing/material.h
-     Master:	  AddMaterial(), ConvMaterialList(), MaterialGroup(),
-		  GroupName(), MaterialName(),
-		  GetMatMembership()
+   /p/daemon/materialdb.c (MATERIALDB)
 
-7. Mai 2004 Gloinson
\ No newline at end of file
+
+ARGUMENTE
+=========
+
+   string grp - Gruppenname
+
+
+BESCHREIBUNG
+============
+
+   Gibt alle dieser Gruppe zugehoerigen Materialien zurueck. Dazu gut, sich
+   einen Ueberblick ueber die aktuelle Liste zu verschaffen.
+
+
+RUECKGABEWERT
+=============
+
+   Array von Strings mit Materialien oder ({})
+
+
+BEISPIELE
+=========
+
+   // wir wollen irgend ein Metall haben, nennen dies aber beim Namen
+   int ind;
+   string* likeit;
+   likeit=MATERIALDB->GetGroupMembers(MATGROUP_METAL);
+   ind=random(sizeof(likeit));
+   ...
+   write("Der Schmied sagt: Mir fehlt noch "+
+         MATERIALDB->MaterialName(likeit[ind], WER, 100)+".\n");
+   ...
+
+
+SIEHE AUCH
+==========
+
+   Konzepte:    material, materialerkennung
+   Grundlegend: P_MATERIAL, /sys/thing/material.h
+   Master:      AddMaterial(), ConvMaterialList(), MaterialGroup(),
+                GroupName(), MaterialName(),
+                GetMatMembership()
+
+7. Mai 2004 Gloinson
