diff --git a/doc/sefun/query_limits b/doc/sefun/query_limits
index 954577a..8af988f 100644
--- a/doc/sefun/query_limits
+++ b/doc/sefun/query_limits
@@ -1,56 +1,82 @@
-DEPRECATED
-SYNOPSIS
-        #include <sys/rtlimits.h>
 
-        int *query_limits();
-        int *query_limits(int default);
+query_limits()
+**************
+
+
+DEPRECATED
+==========
+
+
+SYNOPSIS
+========
+
+   #include <sys/rtlimits.h>
+
+   int *query_limits();
+   int *query_limits(int default);
+
 
 BESCHREIBUNG
-        Liefert ein Array mit den momentan gueltigen Laufzeit Limiten bzw.
-        die standardmaessigen Laufzeit Limiten, wenn <default> wahr ist.
-        Die Eintraege im gelieferten Array bedeuten:
+============
 
-        int[LIMIT_EVAL]:        die maximalen Eval Kosten
-        int[LIMIT_ARRAY]:       die maximale Anzahl Array Eintraege
-        int[LIMIT_MAPPING]:     die maximale Anzahl Mapping Eintraege
-        int[LIMIT_BYTE]:        die maximale Anzahl Bytes, die mit read_bytes()
-                                /write_bytes() bearbeitet werden koennen
-        int[LIMIT_FILE]:        die maximale Anzahl Bytes, die mit read_file()
-                                /write_file() bearbeitet werden koennen
-        int[LIMIT_CALLOUTS]:    die maximale Anzahl gleichzeitiger call_out()s
-        int[LIMIT_COST]:        wie die aktuellen Kosten einzurechnen sind
+   Liefert ein Array mit den momentan gueltigen Laufzeit Limiten bzw.
+   die standardmaessigen Laufzeit Limiten, wenn <default> wahr ist.
+   Die Eintraege im gelieferten Array bedeuten:
 
-        Ausser fuer LIMIT_COST ein Limit von '0' (auch LIMIT_UNLIMITED)
-        bedeutet 'keine Limit'.
+   int[LIMIT_EVAL]:        die maximalen Eval Kosten
+   int[LIMIT_ARRAY]:       die maximale Anzahl Array Eintraege
+   int[LIMIT_MAPPING]:     die maximale Anzahl Mapping Eintraege
+   int[LIMIT_BYTE]:        die maximale Anzahl Bytes, die mit read_bytes()
+                           /write_bytes() bearbeitet werden koennen
+   int[LIMIT_FILE]:        die maximale Anzahl Bytes, die mit read_file()
+                           /write_file() bearbeitet werden koennen
+   int[LIMIT_CALLOUTS]:    die maximale Anzahl gleichzeitiger call_out()s
+   int[LIMIT_COST]:        wie die aktuellen Kosten einzurechnen sind
 
-        LIMIT_COST hat diese Bedeutungen:
-          
-          wert > 0: Maximal <wert> fuer als Kosten fuer die aktuelle Ausfuehrung
-                    verwendet, ungeachtet wie lange sie tatsaechlich dauert.
-               = 0: ist die derzeite LIMIT_EVAL groesser als die vorherige
-                    LIMIT_EVAL, kostet die aktuelle Ausfuehrung nur 10
-                    Ticks; andernfalls werden die gesamten Kosten angerechnet.
-                < 0: (-wert)% der aktuellen Ausfuehrungskosten werden
-                     angerechnet.
+   Ausser fuer LIMIT_COST ein Limit von '0' (auch LIMIT_UNLIMITED)
+   bedeutet 'keine Limit'.
 
-BEMERKUNGEN:
-        "Aktuelle Kosten" bei LIMIT_COST hat im Falle der Benutzung von
-        limited() die Bedeutung von "im limited verbrauchte Kosten", steuert
-        also, wieviel der im Durchlaufen der Funktion im limited()
-        verbrauchten Ticks mit dem Ende von limited() angezogen wird.
+   LIMIT_COST hat diese Bedeutungen:
+
+
+
+     wert > 0: Maximal <wert> fuer als Kosten fuer die aktuelle Ausfuehrung
+               verwendet, ungeachtet wie lange sie tatsaechlich dauert.
+          = 0: ist die derzeite LIMIT_EVAL groesser als die vorherige
+               LIMIT_EVAL, kostet die aktuelle Ausfuehrung nur 10
+               Ticks; andernfalls werden die gesamten Kosten angerechnet.
+           < 0: (-wert)% der aktuellen Ausfuehrungskosten werden
+                angerechnet.
+
+
+BEMERKUNGEN
+===========
+
+   "Aktuelle Kosten" bei LIMIT_COST hat im Falle der Benutzung von
+   limited() die Bedeutung von "im limited verbrauchte Kosten", steuert
+   also, wieviel der im Durchlaufen der Funktion im limited()
+   verbrauchten Ticks mit dem Ende von limited() angezogen wird.
+
 
 BEISPIELE
-        query_limits()
-        --> liefert die momentan gueltigen Laufzeit Limiten.
-        query_limits(1)
-        --> liefert die standardmaessigen Laufzeit Limiten.
+=========
+
+   query_limits()
+   --> liefert die momentan gueltigen Laufzeit Limiten.
+   query_limits(1)
+   --> liefert die standardmaessigen Laufzeit Limiten.
+
 
 AENDERUNGEN
-        Eingefuehrt in LDMud 3.2.7.
-        LIMIT_CALLOUTS wurde in LDMud 3.2.9 eingefuehrt.
+===========
+
+   Eingefuehrt in LDMud 3.2.7.
+   LIMIT_CALLOUTS wurde in LDMud 3.2.9 eingefuehrt.
+
 
 SIEHE AUCH
-        limited(E), set_limits(E)
+==========
+
+   limited(E), set_limits(E)
 
 16.05.2007, Zesstra
-
