diff --git a/doc/efun/limited b/doc/efun/limited
index 1155af1..69ce32a 100644
--- a/doc/efun/limited
+++ b/doc/efun/limited
@@ -1,4 +1,3 @@
-VORLAEUFIG, GESCHUETZT
 SYNOPSIS
         #include <rtlimits.h>
 
@@ -7,50 +6,49 @@
         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 Laufzeitlimitierungen aus.
+DESCRIPTION
+        Call the function <fun> with any given <args> as parameters,
+        and execute it with the given runtime limits.
 
-        Beim Ende der Funktion <fun> werden die momentan aktiven
-        Laufzeitlimitierungen wiederhergestellt. limited() liefert den
-        Rueckgabewert der Closure <fun> zurueck.
+        After the function exits, the currently active limits are restored.
+        Result of the efun is the result of the closure call.
 
-        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'.
+        The runtime limits can be given in two ways: as an array (like the
+        one returned from query_limits(), or as a list of tagged values.  If
+        the efun is used without any limit specification, all limits are
+        supposed to be 'unlimited'.
 
-        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' Limitierungen werden verwendet
+        The limit settings recognize three special values:
+            LIMIT_UNLIMITED: the limit is deactivated
+            LIMIT_KEEP:      the former setting is kept
+            LIMIT_DEFAULT:   the 'global' default setting is used.
 
-        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
+        For LIMIT_COST, the special values have these meaning:
+            LIMIT_UNLIMITED: at maximum 1 tick is accounted
+            LIMIT_KEEP:      LIMIT_COST is set to 0
+            LIMIT_DEFAULT:   LIMIT_COST is set to -100
 
-        limited() erzeugt eine Schutzverletzung ("limited", current_object,
+        The efun causes a privilege violation ("limited", current_object,
         fun, limits-array).
 
 
-BEISPIELE
+EXAMPLES
         limited(#'function)
-        --> fuehrt die Funktion ohne Limits aus.
+          --> executes function with no limits at all
 
         limited(#'function, ({ 200000 }), "foo")
-        --> fuehrt die Funktion mit einem Eval-Kosten-Limit von 200000 Ticks
-            aus. Die Funktion wird als 'function("foo")' aufgerufen.
+          --> executes function with an eval_cost limit of 200000, and
+              calls function as <function>("foo").
 
         limited(lambda(0, ({#'function, "foo"})), LIMIT_EVAL, 200000)
-        --> fuehrt die Funktion mit einem Eval-Kosten-Limit von 200000 Ticks
-            aus. Die Funktion wird als 'function("foo")' aufgerufen.
+          --> executes function with an eval_cost limit of 200000, and
+              calls function as <function>("foo").
 
-GESCHICHTE
-        Eingefuehrt in LDMud 3.2.7.
-        LDMud 3.3.563 fuehrte LIMIT_COST ein.
-        LDMud 3.5.0 fuehrte LIMIT_MEMORY ein.
+HISTORY
+        Introduced in LDMud 3.2.7.
+        LDMud 3.3.563 introduced LIMIT_COST.
+        LDMud 3.3.677 introduced LIMIT_MAPPING_KEYS, LIMIT_MAPPING_SIZE.
+        LDMud 3.5.0 introduced LIMIT_MEMORY.
 
-SIEHE AUCH
+SEE ALSO
         query_limits(E), set_limits(E)
