diff --git a/obj/axt2.c b/obj/axt2.c
index a8eb3aa..83937d9 100644
--- a/obj/axt2.c
+++ b/obj/axt2.c
@@ -1,11 +1,13 @@
 /*
-  Manchmal moechte man ja einem NPC eine ordentliche Waffe geben, die dann
-  aber fuer Spieler nicht so geeignet oder schlicht zu gut waere. In diesem
-  Fall ist eine Moeglichkeit, die Waffenwerte abhaengig von demjenigen zu
-  setzen, der sie gerade dabeihat.
+  Eine andere Moeglichkeit, eine Waffe nur fuer einen NPC zur Verfuegung zu
+  stellen ist ein wenig frustrierender fuer Spieler. Man sollte Beispiele
+  wie dieses nicht ungeprueft uebernehmen. Waffen, die kein Spieler zuecken
+  kann, stossen meist nicht auf sehr hohen Enthusiasmus beim Spieler, die
+  betreffende Gegend mehrmals zu aufzusuchen.
 */
 inherit "/std/weapon";
 
+#include <new_skills.h>
 #include __PATH__(1)"defs.h"
 
 
@@ -25,23 +27,16 @@
   SetProp(P_GENDER, FEMALE);
   AddId(({"axt"}));
 
-  /* Dies ist Kawumms persoenliche Axt, und mit der macht er mehr Schaden als
-     jeder andere. Gleichzeitig ist dies ein Beispiel dafuer, wie man eine
-     Prop mit einer Closure setzt. Da F_QUERY_METHOD angegeben ist, wird die
-     eingebundene Inline-Function jedesmal ausgefuehrt, wenn der Wert von P_WC
-     abgefragt wird, also z.B. auch bei jedem Attack().
-     Der umgekehrte Fall waere, wenn wir F_SET_METHOD verwenden, dann wuerde
-     die Inline-Function ausgefuehrt, wenn jemand SetProp(P_WC) aufruft. */
-  Set(P_WC, function int() {
-    if (load_name(ENV()) == __PATH__(1)"npc/zwerg5")
-      return 180;
-    return 100;
-  }, F_QUERY_METHOD);
-
+  SetProp(P_WC, 180);
   SetProp(P_WEAPON_TYPE, WT_AXE);
   SetProp(P_DAM_TYPE, DT_SLASH);
   SetProp(P_NR_HANDS, 1);
 
+  /* "Restriktionen" bezieht sich hier konkret auf das Zuecken der Waffe.
+     In diesem Beispiel wird das anhand der Function wield_check()
+     ueberprueft, die sich in DIESEM Objekt befinden muss: */
+  SetProp(P_RESTRICTIONS, ([SR_FUN: "wield_check"]));
+
   SetProp(P_VALUE, 200);
   SetProp(P_WEIGHT, 3250);
   SetProp(P_SIZE, 90);
@@ -49,3 +44,13 @@
   SetProp(P_MATERIAL, ([MAT_STEEL:100]));
 }
 
+public string wield_check() {
+  /* Wir pruefen direkt, ob derjenige, der die Axt im Inventory hat, der
+     legale Besitzer ist. Diese Axt funktioniert also z.B. nicht mehr,
+     wenn man einen anderen NPC damit ausruesten moechte. */
+  if (load_name(ENV()) != __PATH__(1)"npc/zwerg4")
+    return BSLF(
+      "Dies ist Kawumms persoenliche Axt. Sie ist so dermassen unhandlich, "
+      "dass Du sie nicht zuecken kannst.");
+  return 0;
+}
