diff --git a/doc/sphinx/lfun/SetTimedAttrModifier.rst b/doc/sphinx/lfun/SetTimedAttrModifier.rst
new file mode 100644
index 0000000..17b2d9f
--- /dev/null
+++ b/doc/sphinx/lfun/SetTimedAttrModifier.rst
@@ -0,0 +1,114 @@
+SetTimedAttrModifier()
+======================
+
+FUNKTION
+--------
+::
+
+     int SetTimedAttrModifier(string key, mapping modifier, 
+                              int outdated, object dependent, mixed notify) 
+
+DEFINIERT IN
+------------
+::
+
+     /std/living/attributes.c
+
+ARGUMENTE
+---------
+::
+
+     key	-	in P_TIMED_ATTR_MOD vorzunehmender oder zu 
+                        aendernder Eintrag
+     modifier   -       Mapping mit den Attributveraenderungen
+     outdated   -       Zeitpunkt zu dem die Attributveraenderungen
+                        ablaufen sollen in Sekunden seit dem
+                        1. Jan 1970, 0.0:0 GMT oder 0
+     dependent  -       Objekt dessen Existenz eine Bedingung fuer die
+                        Attributveraenderung sein soll oder 0
+     notify     -       Objekt oder File das mittels 
+                        NotifyTimedAttrModExpired ueber
+                        den Attributablauf informiert werden soll
+
+BESCHREIBUNG
+------------
+::
+
+     Der zu key gehoerende Eintrag wird in P_TIMED_ATTR_MOD angelegt oder
+     modifiziert und update_max_sp_and_hp aufgerufen.
+     Es empfiehlt sich auf die Eindeutigkeit des string-Parameters key
+     besonderes Augenmerk zu legen.
+
+     Unter dem Key key wird in P_TIMED_ATTR_MOD ein Eintrag vorgenommen,
+     welcher die Attribute des Livings um die in modifier stehenden Offsets
+     veraendert.
+
+     Diese Veraenderung ist solange aktiv bis entweder die in outdated
+     stehende Zeit ueberschritten ist oder das in dependent uebergebene
+     Objekt nicht mehr existiert.
+     Sind beide Argumente 0 so laeuft die Attributveraenderung nicht ab
+     und kann durch DeleteTimedAttrModifier geloescht werden.
+     Laeuft die Attributveraenderung ab, so wird der in notify angegebene
+     Empfaenger mittels Aufruf NotifyTimedAttrModExpired davon 
+     benachrichtigt.
+     Der Funktion NotifyTimedAttrModExpired wird als Argument der key
+     der abgelaufenen Attributveraenderung uebergeben.
+
+BEISPIELE
+---------
+::
+
+     Ein NPC kann einen Spieler auf die folgende Weise solange die
+     Attribute um eins herabsetzen bis entweder eine Stunde verstrichen
+     ist oder der NPC nicht mehr existiert zum Beispiel weil er getoetet
+     wurde.
+
+       player->SetTimedAttrModifier( player->query_real_name(),
+                                     ([A_STR:-1,A_INT:-1,A_DEX:-1,A_CON:-1]),
+                                     time()+3600,
+                                     this_object(),
+                                     this_object()
+                                   );
+
+     Will der NPC nun noch darauf reagieren, dass die Attributmodifikation
+     durch Timeout abgelaufen ist, so koennte dies folgendermassen geschehen.
+
+       void NotifyTimedAttrModExpired(string str)
+       {
+           // Die Funktion wird aus dem Lebewesen gerufen, in welchem der Mod
+           // gerade abgelaufen ist. Also Meldungsausgabe an
+           // previous_object().
+           tell_object(previous_object()
+               ,"Da hast Du aber nochmal Glueck gehabt.\n");
+       }
+
+RUeCKGABEWERT
+-------------
+::
+
+     TATTR_INVALID_ARGS      -     Im Falle eines fehlenden key-Arguments,
+                                   eines fehlenden modifier-Arguments oder
+                                   eines bereits abgelaufenen
+                                   outdatet-Arguments
+     TATTR_OK                -     Im Erfolgsfall
+
+     Die Rueckgabewerte sind in /sys/living/attributes.h definiert.
+
+SIEHE AUCH
+----------
+::
+
+     Attribute:  QueryAttribute(), SetAttribute()
+                 SetRealAttribute(), QueryRealAttribute(),
+                 QueryAttributeOffset(),
+                 UpdateAttributes()
+     Methoden:   QueryTimedAttrModifier(), DeleteTimedAttrModifier()
+     Callback:   NotifyTimedAttrModExpired()
+     Properties: P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS
+		 P_X_ATTR_MOD, P_M_ATTR_MOD
+		 P_TIMED_ATTR_MOD
+     Sonstiges:  /std/living/attributes.c
+
+LETZTE Aenderung:
+15.02.2009, Zesstra
+
