diff --git a/doc/lfun/show_notify b/doc/lfun/show_notify
index ae09adc..0ce99ac 100644
--- a/doc/lfun/show_notify
+++ b/doc/lfun/show_notify
@@ -1,44 +1,73 @@
+
+show_notify()
+*************
+
 give_notify()
-FUNKTION:
-     void show_notify(object obj)
 
-DEFINIERT IN:
-     /std/living/put_and_get.c
 
-ARGUMENTE:
-     obj - dem Lebewesen gezeigtes Objekt
+FUNKTION
+========
 
-RUeCKGABEWERT:
-     keiner
+   void show_notify(object obj)
 
-BESCHREIBUNG:
-     Diese Funktion wird automatisch immer dann aufgerufen, wenn einem
-     Lebewesen (welches kein Spielercharakter ist) ein Objekt gezeigt wird.
-     Dies funktioniert nur dann, wenn der Standardbefehl der Spielershell
-     verwendet wird ("zeige <name> <gegenstand>"). Selbstgebautes "zeige"
-     funktioniert nicht.
 
-BEISPIEL:
-     Oftmals will man in Quests erreichen, dass einem NPC ein bestimmtes
-     Item als Beweis der Erfuellung einer bestimmten Aufgabe vorgezeigt
-     wird. Folgendermassen kann dies realisiert werden:
+DEFINIERT IN
+============
 
-     void quest_ok(object obj) { ...
-       // z.B. Vernichtung des Questobjektes und Questtexte
-       // Questbelohnung und Questanerkennung, etc.
-     }
+   /std/living/put_and_get.c
 
-     void show_notify(object obj) {
-       if(obj->id("\nquestitem")) // Ist das das geforderte Questobjekt?
-         quest_ok(obj);
-     }
 
-BEMERKUNGEN:
-     Da es nur um das Vorzeigen von Gegenstaenden geht, die nicht den 
-     Besitzer wechseln, sind Mechanismen wie P_REJECT in diesem Fall 
-     nicht erforderlich.
+ARGUMENTE
+=========
 
-SIEHE AUCH:
-     give_notify(), /std/npc/put_and_get.c, /std/living/put_and_get.c
+   obj - dem Lebewesen gezeigtes Objekt
+
+
+RUeCKGABEWERT
+=============
+
+   keiner
+
+
+BESCHREIBUNG
+============
+
+   Diese Funktion wird automatisch immer dann aufgerufen, wenn einem
+   Lebewesen (welches kein Spielercharakter ist) ein Objekt gezeigt wird.
+   Dies funktioniert nur dann, wenn der Standardbefehl der Spielershell
+   verwendet wird ("zeige <name> <gegenstand>"). Selbstgebautes "zeige"
+   funktioniert nicht.
+
+
+BEISPIEL
+========
+
+   Oftmals will man in Quests erreichen, dass einem NPC ein bestimmtes
+   Item als Beweis der Erfuellung einer bestimmten Aufgabe vorgezeigt
+   wird. Folgendermassen kann dies realisiert werden:
+
+   void quest_ok(object obj) { ...
+     // z.B. Vernichtung des Questobjektes und Questtexte
+     // Questbelohnung und Questanerkennung, etc.
+   }
+
+   void show_notify(object obj) {
+     if(obj->id("\nquestitem")) // Ist das das geforderte Questobjekt?
+       quest_ok(obj);
+   }
+
+
+BEMERKUNGEN
+===========
+
+   Da es nur um das Vorzeigen von Gegenstaenden geht, die nicht den
+   Besitzer wechseln, sind Mechanismen wie P_REJECT in diesem Fall
+   nicht erforderlich.
+
+
+SIEHE AUCH
+==========
+
+   give_notify(), /std/npc/put_and_get.c, /std/living/put_and_get.c
 
 22. Oktober 2013 Arathorn
