diff --git a/doc/sphinx/lfun/AddSpell.rst b/doc/sphinx/lfun/AddSpell.rst
index 4a8041e..71841e5 100644
--- a/doc/sphinx/lfun/AddSpell.rst
+++ b/doc/sphinx/lfun/AddSpell.rst
@@ -5,7 +5,7 @@
 --------
 
   varargs int AddSpell(int rate, int damage,
-    string|<int|spell>* TextForEnemy, string|<int|string>* TextForOthers,
+    string|<int|string>* TextForEnemy, string|<int|string>* TextForOthers,
     string|string* dam_type, string|closure func, int|mapping spellarg)
 
 DEFINIERT IN
@@ -22,13 +22,13 @@
   damage        - Der Schadenswert fuer Defend(),
                   muss > 0 sein
 
-  TextForEnemy  - Text, den der Feind erhalten soll
+  TextForEnemy  - Text, den der Feind erhalten soll.
                   String <text> oder
                   Array der Form ({<text>,<messagetype>})
                   (Siehe ReceiveMsg())
 
-  TextForOthers - Text, den andere im Raum erhalten sollen
-                  String <text> oder
+  TextForOthers - Text, den andere im Raum erhalten sollen.
+                  String <text> ode
                   Array der Form ({<text>,<messagetype>})
                   (Siehe ReceiveMsg())
 
@@ -37,12 +37,13 @@
                   fuer physikalische Angriffe)
 
   func          - Funktionsname oder Closure, die nach Anwendung
-                  aufgerufen werden soll
+                  aufgerufen werden soll.
                   (Optional, bekommt als Argumente object enemy, 
                   int real_damage, string* dam_type)
 
   sinfo         - Skillinfomapping, muss SI_SPELL mit den SP_* fuer
-                  den Aufruf von Defend() enthalten
+                  den Aufruf von Defend() enthalten.
+                  Hierfuer muss <newskills.h> includiert werden.
                   Default ist ([SI_SPELL: ([SP_PHYSICAL_ATTACK: 0]),
                   SI_MAGIC_TYPE: ({ MT_ANGRIFF }) ])
 
diff --git a/doc/sphinx/lfun/consume.rst b/doc/sphinx/lfun/consume.rst
index 25ab213..35dc402 100644
--- a/doc/sphinx/lfun/consume.rst
+++ b/doc/sphinx/lfun/consume.rst
@@ -22,11 +22,23 @@
 ::
 
     cinfo
-        Mapping mit Informationen ueber die Gesundheitsaenderung
-        Heilung.
+      Mapping mit Informationen ueber die Gesundheitsaenderung. Folgende
+      Schluessel koennen verwendet werden:
+      H_EFFECTS - Mapping der zu aendernden Properties mit dem Umfang der
+                  Aenderung, erlaubte Properties siehe H_ALLOWED_EFFECTS
+                  (P_HP, P_SP, P_POISON).
+      H_CONDITIONS - Mapping der zu pruefenden Properties mit dem Umfang der
+                     Aenderung, erlaubte Properties siehe 
+                     H_ALLOWED_CONDITIONS (P_FOOD, P_DRINK, P_ALCOHOL)
+      H_DISTRIBUTION - Verteilung der Aenderung fuer P_HP, P_SP
+                       HD_INSTANT:  sofortige Heilung
+                       HD_STANDARD: 5 pro Heartbeat
+                       1 - 50:      angebene Zahl pro Heartbeat
+      Aenderungen koennen sowohl positiv als auch negativ sein.
+    
     testonly
-        Gibt an, ob nur die Bedingungen abgetestet werden sollen,
-        oder auch die Wirkung eintreten soll.
+      Gibt an, ob nur die Bedingungen abgetestet werden sollen, oder 
+      auch die Wirkung eintreten soll. 
 
 RUECKGABEWERT
 -------------
@@ -34,11 +46,16 @@
 
     1 erfolgreich konsumiert
     0 keine oder falsche Aenderungsdaten in cinfo (nicht benutzbar)
-   <0 Bedingung fuer konsumieren nicht erfuellt, Bitset aus:
+   <0 Bedingung fuer konsumieren nicht erfuellt.
+      Der Rueckgabewert ist dann ein Bitset aus:
       HC_MAX_FOOD_REACHED    - Kann nichts mehr essen
       HC_MAX_DRINK_REACHED   - Kann nichts mehr trinken
       HC_MAX_ALCOHOL_REACHED - Kann nichts mehr saufen
-      HC_HOOK_CANCELLETION   - durch H_HOOK_CONSUME abgebrochen
+      HC_HOOK_CANCELLATION   - durch H_HOOK_CONSUME abgebrochen
+    
+    Hinweis: Wenn eine der Bedingungen nicht erfuellt ist, wird gar keine
+    Heilung ausgefuehrt, aber es sind stets alle Fehlercodes im
+    Rueckgabewert eingetragen.
 
 BESCHREIBUNG
 ------------
@@ -50,49 +67,38 @@
     erledigen. Sie vereint in sich die Pruefung auf Durchfuerbarkeit der
     Aenderung und Anwendung der Aenderung.
 
-    Der erste Parameter gibt die Eigenschaften der Aenderung an, der zweite ob
-    ausschliesslich die Pruefung auf Anwendbarkeit erfolgen soll.
-
-    Das Mapping cinfo hat folgende Struktur:
-    a) Einfache Angabe der betroffenen Properties. In neuem Code bitte nicht
-       machen, dort ein Mapping wie unter b) beschrieben nutzen!
-
-    b) Strukturiert in Effekte und Bedingungen mit folgenden Schluesseln:
-      H_EFFECTS - Mapping der zu aendernden Properties mit dem Umfang der
-                  Aenderung, erlaubte Properties siehe H_ALLOWED_EFFECTS
-
-      H_CONDITIONS - Mapping der zu pruefenden Properties mit dem Umfang der
-                     Aenderung, erlaubte Properties siehe H_ALLOWED_CONDITIONS
-
-      H_DISTRIBUTION - Verteilung der Aenderung fuer P_SP, P_HP
-                       HD_INSTANT bzw. 0: instante Heilung
-                       1 - 50: angebene Zahl pro Heartbeat
-                       HD_STANDARD: 5 pro Heartbeat
-
-    Aenderungen koennen sowohl positiv als auch negativ sein.
+    Das erste Argument gibt die Eigenschaften der Aenderung an, der zweite 
+    ob ausschliesslich die Pruefung auf Anwendbarkeit erfolgen soll.
 
 BEMERKUNGEN
 -----------
 ::
 
-    Hierbei aber bitte beachten, dass Tanken/Entanken sowie Heilungen ggf. von
+    Hierbei bitte beachten, dass Tanken/Entanken sowie Heilungen ggf. von
     der (Heilungs-)Balance genehmigt werden muessen!
 
+    Historischer Code enthaelt u.U. auch eine einfache Angabe der
+    betroffenen Properties als Argument enthalten. Dies in neuem Code
+    nicht mehr machen, dort ein Mapping wie oben beschrieben nutzen.
+
+    H_ALLOWED_CONDITIONS und H_ALLOWED_EFFECTS sind in /sys/living/life.h
+    definiert.
+
 BEISPIELE
 ---------
 ::
 
     Heilung um 100 KP, 50 LP, aber nur wenn 30 P_FOOD gegessen werden kann:
 
-    consume( ([H_EFFECTS: ([P_HP:50, P_SP:100]),
+    consume( ([H_EFFECTS:    ([P_HP:50, P_SP:100]),
                H_CONDITIONS: ([P_FOOD:30]) ]) );
 
     Heilung um 100 KP und Vergiftung um 2, wenn 15 Alkohol getrunken werden
     koennen. Die SP werden zeitverzoegert mit 10 pro Heartbeat zugefuehrt.
 
-    consume(([H_EFFECTS: ([P_SP: 100, P_POISON: 2]),
-              H_CONDITIONS: ([P_ALCOHOL: 15]),
-              H_DISTRIBUTION: 10]) )
+    consume( ([H_EFFECTS:      ([P_SP: 100, P_POISON: 2]),
+               H_CONDITIONS:   ([P_ALCOHOL: 15]),
+               H_DISTRIBUTION: 10]) );
 
 SIEHE AUCH
 ----------
diff --git a/doc/sphinx/props/P_PEACE_HISTORY.rst b/doc/sphinx/props/P_PEACE_HISTORY.rst
index e4e36a5..382498d 100644
--- a/doc/sphinx/props/P_PEACE_HISTORY.rst
+++ b/doc/sphinx/props/P_PEACE_HISTORY.rst
@@ -54,7 +54,7 @@
 ----------
 ::
 
-     P_PEACE_ACCEPT
+     P_ACCEPT_PEACE
      QueryPacify()
      /std/living/combat.c
 
