diff --git a/doc/efun/set_next_reset b/doc/efun/set_next_reset
index 89e09c5..20961ea 100644
--- a/doc/efun/set_next_reset
+++ b/doc/efun/set_next_reset
@@ -1,55 +1,26 @@
-FUNKTION
-     int set_next_reset(int delay)
-
-ARGUMENTE
-     delay - minimale Zeit bis zum naechsten Reset des Objektes
+SYNOPSIS
+        int set_next_reset(int delay)
 
 BESCHREIBUNG
-     Mit dieser efun ist es moeglich Einfluss auf das Resetverhalten des
-     Objektes zu nehmen:
+        Weist den Gamedriver an, im Objekt nicht vor Ablauf von <delay>
+        Sekunden einen Reset durchzufuehren. Wird fuer <delay> ein negativer
+        Wert angegeben, wird nie ein Reset im Objekt durchgefuehrt (sinnvoll
+        fuer Blueprints). Wird fuer <delay> 0 angegeben, wird die
+        Reset-Zeit des Objekts nicht veraendert.
 
-     Das Objekt bekommt einen reset()-Aufruf fruehestens in <delay> Sekunden.
-     Bei Angabe eines Wertes <0 wird der reset() für das Objekt abgeschaltet,
-     was fuer Blueprints gelegentlich sinnvoll ist.
+        Die Funktion gibt die verbleibende Zeit bis zum naechsten Reset
+        zurueck, bevor <delay> gesetzt wurde. Der Wert kann auch negativ
+        sein, wenn der Reset ueberfaellig war.
 
-     Intern wird in gleichbleibenden Abstaenden (derzeit: in der Regel 2s,
-     kann sich aber auch verzoegern, wenn der Driver viel zu hat, z.B. auf 
-     4s) geprueft ob die Zeit zum zum naechsten reset() abgelaufen ist. 
-     Sollte dies der Fall sein, wird die Funktion reset() im Objekt 
-     aufgerufen.
-
-     Die Funktion gibt die verbleibende Zeit bis zum naechsten Reset
-     zurueck, bevor <delay> gesetzt wurde. Der Wert kann auch negativ
-     sein, wenn der Reset ueberfaellig war.
-
-     Achtung: die tatsaechliche Zeit, wann der Reset im Objekt durchgefuehrt
-     wird, haengt auch davon ab, ob das Objekt nach Ablauf von <delay>
-     verwendet wird.
+        Merke: die tatsaechliche Zeit, wann der Reset im Objekt
+        durchgefuehrt wird, haengt davon ab, ob das Objekt nach Ablauf
+        von <delay> verwendet wird.
 
 BEISPIELE
-     // ein Objekt mit verkuerzter reset()-Zeit
-     void create() {
-       ...
-       set_next_reset(15*60);	// ~ 15 Minuten
-       ...
-     }
+        set_next_reset(15*60);      Der naechste Reset erfolgt nach
+                                    fruehestens 15 Minuten.
+        set_next_reset(0);          Gibt die verbleibende Zeit zum naechsten
+                                    Reset zurueck.
 
-     void reset() {
-       set_next_reset(900);	// die muss im reset() immer wieder
-       ::reset();           // neu gesetzt werden
-     }
-
-     // ein Objekt, dessen Blueprint keinen reset() bekommen soll
-     void create() {
-       if(!clonep(this_object())) {
-         set_next_reset(-1);
-         return;
-       }
-       ::create();
-       ...
-     }
-
-SIEHE AUCH
-     call_out(E), object_info(E), reset(L), query_next_reset(E)
-
-7.Aug 2007 Gloinson
+GESCHICHTE
+        Eingefuehrt in LDMud 3.2.6, angepasst von Morgengrauen.
