diff --git a/README b/README
index 2ad758d..559fa71 100644
--- a/README
+++ b/README
@@ -53,6 +53,8 @@
   room/huette5.c, npc/zwerg1.c
 6. Ein Raum mit einem ausgeruesteten NPC.
   room/huette6.c, npc/zwerg2.c
+7. Ein Raum mit einem NPC, der ueber Spells und Resistenzen verfuegt.
+  room/huette7.c, npc/zwerg3.c
 
 
 B. Unser erster eigener NPC
@@ -62,6 +64,8 @@
   npc/zwerg1.c
 2. Ein toll ausgeruesteter Zwerg.
   npc/zwerg2.c, obj/krempel.c, obj/axt.c, obj/schild.c
+3. Ein Zwerg mit Resistenzen und Spells.
+  npc/zwerg3.c
 
 
 C. Unsere ersten eigenen Gegenstaende
diff --git a/npc/zwerg2.c b/npc/zwerg2.c
index a29afa0..dabedde 100644
--- a/npc/zwerg2.c
+++ b/npc/zwerg2.c
@@ -31,9 +31,10 @@
 
 
   /* Die Axt wird beim Clonen gleich gezueckt. Wenn der Zwerg sie
-     verbummelt ist sie weg und wird im Reset nicht ersetzt: */
+     verbummelt, ist sie weg und wird im Reset nicht ersetzt: */
   AddItem(__PATH__(1)"obj/axt", REFRESH_NONE|CLONE_WIELD);
-  // Beim Clonen gleich anziehen:
+  /* Aehnlich beim Schild: Beim Clonen wird er gleich anzogen
+     und bei Verlust nicht ersetzt: */
   AddItem(__PATH__(1)"obj/schild", REFRESH_NONE|CLONE_WEAR);
   AddItem(__PATH__(1)"obj/krempel", REFRESH_NONE);
 }
diff --git a/npc/zwerg3.c b/npc/zwerg3.c
new file mode 100644
index 0000000..19acd89
--- /dev/null
+++ b/npc/zwerg3.c
@@ -0,0 +1,70 @@
+inherit "/std/npc";
+
+#include __PATH__(1)"defs.h"
+
+
+protected void create() {
+  if (!clonep()) {
+    set_next_reset(-1);
+    return;
+  }
+  ::create();
+
+  create_default_npc(20, 600);
+
+  SetProp(P_SHORT, "Ein kaempferischer Zwerg");
+  SetProp(P_LONG, BSLF(
+    "Dieser Zwerg wehrt sich ein wenig. Ausserdem verfuegt er Resistenzen."));
+  SetProp(P_NAME, "Kawumm");
+  SetProp(P_ARTICLE, 0);
+  SetProp(P_GENDER, MALE);
+
+  AddId(({"zwerg", "kawumm"}));
+  SetProp(P_ALIGN, 100);
+  SetProp(P_RACE, "Zwerg");
+  SetProp(P_SIZE, 102);
+
+  SetProp(P_MURDER_MSG,
+    "He! Ich gehoere doch zu Notstroms Magiertutorial, %s.");
+  SetProp(P_DIE_MSG, " kippt um wie eine leere Bierflasche.\n");
+
+
+  /* Der Zwerg ist ein wenig anfaellig gegen satanisches Gebrabbel und
+     Furchtschaden, sehr anfaellig gegen Wasser (und Seife), ein wenig
+     resistent gegen Kaelte und recht resistent gegen Gift. */
+  SetProp(P_RESISTANCE_STRENGTHS,
+    ([DT_UNHOLY:     0.3,
+      DT_TERROR:     0.3,
+      DT_POISON:    -0.5,
+      DT_COLD:      -0.3,
+      DT_WATER:      0.6]));
+
+  // Der Zwerg verfuegt ueber ein paar Spezialangriffe:
+  SetProp(P_SPELLRATE, 80);
+
+  AddSpell(25, 300+random(150),
+           BSLF("Kawumm hat Dir voll aufs Schienbein. AUA!"),
+           BSLF("Kawumm haut @WEM mal so richtig auf das Schienbein. Hoeher "
+                "kommt er ja nicht dran."),
+           ({DT_BLUDGEON}), 0,
+           ([SP_PHYSICAL_ATTACK:1, SP_SHOW_DAMAGE:1]));
+  AddSpell(25, 200+random(100),
+           BSLF("Kawumm klettert auf einen Hocker und verpasst Dir einen "
+                "Kinnhaken."),
+           BSLF("Kawumm steigt auf einen Hocker, reckt sich noch ein Stueck "
+                "und verpasst @WEM einen ordentlichen Kinnhaken."),
+           ({DT_BLUDGEON}), 0,
+           ([SP_PHYSICAL_ATTACK:1, SP_SHOW_DAMAGE:1]));
+  AddSpell(25, 200+random(150),
+           BSLF("Kawumm macht da unten etwas, Deine Fuesse tun auf einmal "
+                "hoellisch weh."),
+           BSLF("Kawumm tritt @WEM mal so richtig auf die Fuesse."),
+           ({DT_BLUDGEON}), 0,
+           ([SP_PHYSICAL_ATTACK:1, SP_SHOW_DAMAGE:1]));
+  AddSpell(15, 500+random(150),
+           BSLF("Kawumm kokelt Dich an."),
+           BSLF("Kawumm haelt eine brennende Fackel in @WESSEN Schritt."),
+           ({DT_FIRE}), 0,
+           ([SP_PHYSICAL_ATTACK:0, SP_SHOW_DAMAGE:0]));
+}
+
diff --git a/room/huette7.c b/room/huette7.c
new file mode 100644
index 0000000..ccf502a
--- /dev/null
+++ b/room/huette7.c
@@ -0,0 +1,18 @@
+inherit "/std/room";
+
+#include __PATH__(1)"defs.h"
+
+
+protected void create() {
+  ::create();
+
+  SetProp(P_INT_SHORT, "Eine schummrige Huette");
+  SetProp(P_INT_LONG, BSLF(
+    "Der Raum hat nichts neues. Der NPC kaempft aber ein wenig besser."));
+
+  SetProp(P_LIGHT, 1);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_LIGHT_TYPE, LT_GLOWING);
+
+  AddItem(__PATH__(1)"npc/zwerg3", REFRESH_DESTRUCT);
+}
