diff --git a/doc/lfun/SetProp b/doc/lfun/SetProp
index b2602fb..9664be8 100644
--- a/doc/lfun/SetProp
+++ b/doc/lfun/SetProp
@@ -1,47 +1,70 @@
+
 SetProp()
-FUNKTION:
-     public mixed SetProp(string name, mixed Value);
+*********
 
-DEFINIERT IN:
-     /std/thing/properties.c
-     /sys/thing/properties.h (Prototyp)
 
-ARGUMENTE:
-     name	- Property, deren Wert veraendert werden soll.
-     Value	- Wert, auf den der Inhalt der Property gesetzt werden soll
+FUNKTION
+========
 
-BESCHREIBUNG:
-     Der Datenwert der Property 'name' wird auf den Wert 'Value' gesetzt.
+   public mixed SetProp(string name, mixed Value);
 
-     Existiert eine F_SET_METHOD oder eine _set_'name'()-Methode fuer
-     diese Property, so wird diese aufgerufen und ihr 'Value' uebergeben.
-     Eine F_SET_METHOD hat dabei Vorrang vor _set_'name'(), d.h.
-     _set_'name'() wird nach erfolgreicher F_QUERY_METHOD nicht mehr
-     gerufen.
 
-     (Diese Methoden nutzen dann Set(), um den Datenwert der Property
-      'name' zu aendern. Teilweise werden aber auch interne Variablen so
-      oeffentlich gemacht und sind nicht in der ueber Set/Query verfuegbaren
-      Property 'name' abgelegt.)
+DEFINIERT IN
+============
 
-RUeCKGABEWERT:
-     Der Wert, der nun in der Property gespeichert ist.
-     In der Regel ist das 'Value'. Wenn die Property ueber eine SET_METHOD
-     oder eine _set_'name'()-Funktion verfuegt und diese 'Value' aendert
-     (zum Beispiel, indem sie 'Value' an einen bestimmten erlaubten
-     Wertebereich anpasst), kann der Rueckgabewert jedoch auch veraendert
-     sein.
+   /std/thing/properties.c
+   /sys/thing/properties.h (Prototyp)
 
-     Wenn die Property nicht veraendert werden darf, wird -1 zurueckgegeben.
 
-BEISPIELE:
-     // geben wir dem Zwerg eine Kurzbeschreibung
-     SetProp(P_SHORT, "Ein kleiner Zwerg");
+ARGUMENTE
+=========
 
-SIEHE AUCH:
-     Aehnliches:	QueryProp(L), Set(L), Query(L)
-     Generell:		SetProperties(L), QueryProperties(L)
-     Konzept:		properties, /std/thing/properties.c
+   name       - Property, deren Wert veraendert werden soll.
+   Value      - Wert, auf den der Inhalt der Property gesetzt werden soll
+
+
+BESCHREIBUNG
+============
+
+   Der Datenwert der Property 'name' wird auf den Wert 'Value' gesetzt.
+
+   Existiert eine F_SET_METHOD oder eine _set_'name'()-Methode fuer
+   diese Property, so wird diese aufgerufen und ihr 'Value' uebergeben.
+   Eine F_SET_METHOD hat dabei Vorrang vor _set_'name'(), d.h.
+   _set_'name'() wird nach erfolgreicher F_QUERY_METHOD nicht mehr
+   gerufen.
+
+   (Diese Methoden nutzen dann Set(), um den Datenwert der Property
+    'name' zu aendern. Teilweise werden aber auch interne Variablen so
+    oeffentlich gemacht und sind nicht in der ueber Set/Query verfuegbaren
+    Property 'name' abgelegt.)
+
+
+RUeCKGABEWERT
+=============
+
+   Der Wert, der nun in der Property gespeichert ist.
+   In der Regel ist das 'Value'. Wenn die Property ueber eine SET_METHOD
+   oder eine _set_'name'()-Funktion verfuegt und diese 'Value' aendert
+   (zum Beispiel, indem sie 'Value' an einen bestimmten erlaubten
+   Wertebereich anpasst), kann der Rueckgabewert jedoch auch veraendert
+   sein.
+
+   Wenn die Property nicht veraendert werden darf, wird -1 zurueckgegeben.
+
+
+BEISPIELE
+=========
+
+   // geben wir dem Zwerg eine Kurzbeschreibung
+   SetProp(P_SHORT, "Ein kleiner Zwerg");
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches:        QueryProp(L), Set(L), Query(L)
+   Generell:          SetProperties(L), QueryProperties(L)
+   Konzept:           properties, /std/thing/properties.c
 
 15.Dez 2004 Gloinson
-
