diff --git a/doc/efun/limited b/doc/efun/limited
index c967812..1155af1 100644
--- a/doc/efun/limited
+++ b/doc/efun/limited
@@ -1,30 +1,32 @@
 VORLAEUFIG, GESCHUETZT
 SYNOPSIS
-        #include <sys/rtlimits.h>
+        #include <rtlimits.h>
 
-        mixed limited(closure fun);
-        mixed limited(closure fun, int tag, int value, ...);
-        mixed limited(closure fun, int *limits [, mixed *args]);
+        mixed limited(closure fun)
+        mixed limited(closure fun, int tag, int value, ...)
+        mixed limited(closure fun, int *limits)
+        mixed limited(closure fun, int *limits, mixed *args)
 
 BESCHREIBUNG
         limited() ruft die Funktion <fun> mit den bezeichneten Argumenten
-        <args> auf und fuehrt sie mit den gegebenen Laufzeitlimiten aus.
+        <args> auf und fuehrt sie mit den gegebenen Laufzeitlimitierungen aus.
 
         Beim Ende der Funktion <fun> werden die momentan aktiven
-        Laufzeitlimiten wiederhergestellt. limited() liefert den
+        Laufzeitlimitierungen wiederhergestellt. limited() liefert den
         Rueckgabewert der Closure <fun> zurueck.
 
-        Die Laufzeitlimiten koennen in zwei Formen angegeben werden: als
-        Array (wie es von query_limits() geliefert wird) oder als Liste von
-        Werten mit Tags. Wird limited() ohne Angabe von Limits aufgerufen,
-        gelten die Laufzeitlimiten als 'unlimitiert'.
+        Die Laufzeitlimitierungen koennen in zwei Formen angegeben werden: 
+        *  als Array (wie es von query_limits() geliefert wird) oder 
+        *  als Liste von Werten mit Tags.
+        Wird limited() ohne Angabe von Limits aufgerufen, gelten die
+        Laufzeitlimiten als 'unlimitiert'.
 
-        Die Limiteneinstellung kennt drei spezielle Werte aus <rtlimits.h>:
+        Die Limitierung kennt drei spezielle Werte aus <rtlimits.h>:
             LIMIT_UNLIMITED:    es gibt kein Limit
             LIMIT_KEEP:         das zuletzt gesetzte Limit wird beibehalten
-            LIMIT_DEFAULT:      die 'globalen' Limiten werden verwendet
+            LIMIT_DEFAULT:      die 'globalen' Limitierungen werden verwendet
 
-        Fuer LIMIT_COST, die Spezialwerte haben diese Bedeutung:
+        Fuer LIMIT_COST haben folgende Spezialwerte eine Bedeutung:
             LIMIT_UNLIMITED: die Ausfuehrung kosten lediglich einen Tick
             LIMIT_KEEP:      LIMIT_COST wird auf 0 gesetzt
             LIMIT_DEFAULT:   LIMIT_COST wird auf -100 gesetzt
@@ -32,33 +34,23 @@
         limited() erzeugt eine Schutzverletzung ("limited", current_object,
         fun, limits-array).
 
-BEMERKUNGEN:
-        Diese Funktion kann bei uns mudlibweit genutzt werden. Allerdings wird
-        nur die _Reduktion_ von LIMIT_EVAL zugelassen, alle anderen Limits
-        duerfen _nicht_ veraendert werden. Hierbei ist zu beachten, dass das
-        Limit fuer LIMIT_EVAL um min. 1000 Ticks unter den noch verfuegbaren
-        Ticks liegen muss (get_eval_cost()).
-        Fuer LIMIT_COST sind nur 0 und -100 zugelassen.
 
 BEISPIELE
         limited(#'function)
-        --> fuehrt die Funktion ohne Limiten aus.
+        --> fuehrt die Funktion ohne Limits aus.
 
         limited(#'function, ({ 200000 }), "foo")
-        --> fuehrt die Funktion mit einem Eval-Kosten Limit von 200000 Ticks
+        --> fuehrt die Funktion mit einem Eval-Kosten-Limit von 200000 Ticks
             aus. Die Funktion wird als 'function("foo")' aufgerufen.
 
         limited(lambda(0, ({#'function, "foo"})), LIMIT_EVAL, 200000)
-        --> fuehrt die Funktion mit einem Eval-Kosten Limit von 200000 Ticks
+        --> fuehrt die Funktion mit einem Eval-Kosten-Limit von 200000 Ticks
             aus. Die Funktion wird als 'function("foo")' aufgerufen.
 
-AENDERUNGEN
+GESCHICHTE
         Eingefuehrt in LDMud 3.2.7.
         LDMud 3.3.563 fuehrte LIMIT_COST ein.
+        LDMud 3.5.0 fuehrte LIMIT_MEMORY ein.
 
 SIEHE AUCH
         query_limits(E), set_limits(E)
-        get_eval_cost(E)
-
-16.05.2007, Zesstra
-
