diff --git a/obj/axt2.c b/obj/axt2.c
new file mode 100644
index 0000000..ebfeef2
--- /dev/null
+++ b/obj/axt2.c
@@ -0,0 +1,46 @@
+// Fuer Waffen allgemein bitte "man waffen" lesen!
+inherit "/std/weapon";
+
+#include __PATH__(1)"defs.h"
+
+
+protected void create() {
+  if (!clonep()) {
+    set_next_reset(-1);
+    return;
+  }
+  ::create();
+
+  SetProp(P_SHORT, "Eine besondere Axt");
+  SetProp(P_LONG, BSLF(
+    "Dies ist die Axt von Kawumm, dem Zwerg. Niemand kann so damit zuhauen "
+    "wie er."));
+
+  SetProp(P_NAME, "Axt");
+  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_WEAPON_TYPE, WT_AXE);
+  SetProp(P_DAM_TYPE, DT_SLASH);
+  SetProp(P_NR_HANDS, 1);
+
+  SetProp(P_VALUE, 200);
+  SetProp(P_WEIGHT, 3250);
+  SetProp(P_SIZE, 90);
+
+  SetProp(P_MATERIAL, ([MAT_STEEL:100]));
+}
+
