diff --git a/doc/sefun/update_actions b/doc/sefun/update_actions
index b28cf9f..b25c07c 100644
--- a/doc/sefun/update_actions
+++ b/doc/sefun/update_actions
@@ -1,38 +1,63 @@
-FUNKTION:
-        void update_actions()
 
-ARGUMENTE:
-        keine
+update_actions()
+****************
 
-BESCHREIBUNG:
-        Falls eine Aktion ein add_action() ausgeloest hat, werden mit dieser
-        Funktion die neuen Befehle bei allen Lebewesen im aufrufenden Objekt
-        bzw. in der Umgebung des aufrufenden Objektes aktiv.
 
-RUECKGABEWERT:
-        keiner
+FUNKTION
+========
 
-BEMERKUNGEN:
-        Diese Funktion wird eigentlich nur benoetigt, wenn man mit add_action()
-        anstelle von AddCmd() arbeitet (zB. bei Objekten, die nicht
-        /std/thing/commands inheriten).
+   void update_actions()
 
-BEISPIELE:
-        /* Normalerweise sollte man es SO gerade nicht machen. Stattdessen
-         * sollte die "kletter"-Funktion pruefen, ob die Luke geoeffnet ist, 
-         * und sich im Fehlerfall beschweren.
-         * So aber dient es als schoenes Beispiel fuer update_actions() ;)
-         */
-        int oeffne(string str)
-        {
-          if( str == "luke" ) {
-            write( "Du oeffnest die Luke. Du kannst jetzt nach unten klettern.\n");
-            add_action("kletter", "kletter", 1);
-            update_actions();
-            return 1;
-          }
-          return 0;
-        }
 
-SIEHE AUCH:
-  add_action(E), AddCmd(L), RemoveCmd(L)
+ARGUMENTE
+=========
+
+   keine
+
+
+BESCHREIBUNG
+============
+
+   Falls eine Aktion ein add_action() ausgeloest hat, werden mit dieser
+   Funktion die neuen Befehle bei allen Lebewesen im aufrufenden Objekt
+   bzw. in der Umgebung des aufrufenden Objektes aktiv.
+
+
+RUECKGABEWERT
+=============
+
+   keiner
+
+
+BEMERKUNGEN
+===========
+
+   Diese Funktion wird eigentlich nur benoetigt, wenn man mit add_action()
+   anstelle von AddCmd() arbeitet (zB. bei Objekten, die nicht
+   /std/thing/commands inheriten).
+
+
+BEISPIELE
+=========
+
+   /* Normalerweise sollte man es SO gerade nicht machen. Stattdessen
+    * sollte die "kletter"-Funktion pruefen, ob die Luke geoeffnet ist,
+    * und sich im Fehlerfall beschweren.
+    * So aber dient es als schoenes Beispiel fuer update_actions() ;)
+    */
+   int oeffne(string str)
+   {
+     if( str == "luke" ) {
+       write( "Du oeffnest die Luke. Du kannst jetzt nach unten klettern.\n");
+       add_action("kletter", "kletter", 1);
+       update_actions();
+       return 1;
+     }
+     return 0;
+   }
+
+
+SIEHE AUCH
+==========
+
+   add_action(E), AddCmd(L), RemoveCmd(L)
