diff --git a/doc/sphinx/lfun/QuerySkillAttribute.rst b/doc/sphinx/lfun/QuerySkillAttribute.rst
new file mode 100644
index 0000000..3916290
--- /dev/null
+++ b/doc/sphinx/lfun/QuerySkillAttribute.rst
@@ -0,0 +1,95 @@
+QuerySkillAttribute()
+=====================
+
+FUNKTION
+--------
+::
+
+    public int QuerySkillAttribute(string atrname)
+
+DEFINIERT IN
+------------
+::
+
+    /std/living/skill_attributes.c
+
+    
+
+ARGUMENTE
+---------
+::
+
+    string atrname            Name des abzufragenden Attributs
+
+    
+
+BESCHREIBUNG
+------------
+::
+
+    Mit dieser Funktion kann man den Wert bestimmter Attribute
+    abfragen, dabei werden das abgefragte Attribut, Todesfolgen,
+    SA_QUALITY und Werte in P_SKILL_ATTRIBUTE_OFFSETS
+    beruecksichtigt.
+
+    
+
+    Momentane Skills siehe ModifySkillAttribute.
+
+RUECKGABEWERT
+-------------
+::
+
+    Der Wert des Attributs. Ist nichts bestimmtes gesetzt, wird
+    der Standardwert 100 zurueckgegeben.
+    Der Rueckgabewert liegt zwischen 10 bis 1000 (Prozent).
+
+    
+
+BEMERKUNG
+---------
+::
+
+    Die Funktion ist zwar als 'varargs' definiert, gibt man allerdings
+    keinen Attributnamen an, wird immer 100 zurueckgegeben.
+
+    
+
+BEISPIEL
+--------
+::
+
+    // ein Spieler kann ein Stueck Kaese stibitzen, wenn er schnell
+    // genug ist ... (15% ueber normal)
+    if(this_player()->QuerySkillAttribute(SA_SPEED)>=115) {
+      tell_object(this_player(),
+        "Du schnappst das Stueck Kaese aus der Falle.\n");
+      obj kaese = clone_object(...);
+      [...]
+    } else {
+      mapping amap=map_indices(VALID_ARMOUR_CLASS,#'!);
+      amap[AT_GLOVE]=100;
+      tell_object(this_player(),
+        "Du bist zu langsam und die Falle schnappt hungrig zu.\n");
+      this_player()->Defend(random(100),
+                           ({DT_PIERCE, DT_SQUEEZE}),
+                           ([SP_PHYSICAL_ATTACK: 1,
+                             SP_REDUCE_ARMOUR: amap,
+                             SP_SHOW_DAMAGE: 0]));
+    }
+
+SIEHE AUCH
+----------
+::
+
+    Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
+    * Nutzung:      UseSpell, UseSkill
+    * Abfragen:     QuerySkill, QuerySkillAbility
+    * Modifikation: ModifySkillAttribute,
+                    QuerySkillAttributeModifier, RemoveSkillAttributeModifier
+      * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
+    * sonstig:      spruchermuedung, skill_info_liste
+    * Properties:   P_NEWSKILLS
+
+5. Okt 2011 Gloinson
+
