diff --git a/doc/efun/limited b/doc/efun/limited
new file mode 100644
index 0000000..c967812
--- /dev/null
+++ b/doc/efun/limited
@@ -0,0 +1,64 @@
+VORLAEUFIG, GESCHUETZT
+SYNOPSIS
+        #include <sys/rtlimits.h>
+
+        mixed limited(closure fun);
+        mixed limited(closure fun, int tag, int value, ...);
+        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.
+
+        Beim Ende der Funktion <fun> werden die momentan aktiven
+        Laufzeitlimiten 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 Limiteneinstellung 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
+
+        Fuer LIMIT_COST, die Spezialwerte haben diese 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
+
+        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.
+
+        limited(#'function, ({ 200000 }), "foo")
+        --> 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
+            aus. Die Funktion wird als 'function("foo")' aufgerufen.
+
+AENDERUNGEN
+        Eingefuehrt in LDMud 3.2.7.
+        LDMud 3.3.563 fuehrte LIMIT_COST ein.
+
+SIEHE AUCH
+        query_limits(E), set_limits(E)
+        get_eval_cost(E)
+
+16.05.2007, Zesstra
+
