diff --git a/npc/zwerg4.c b/npc/zwerg4.c
index ce46396..e9279c7 100644
--- a/npc/zwerg4.c
+++ b/npc/zwerg4.c
@@ -42,22 +42,23 @@
    was ein wenig lustiger ist. */
 public int Defend(int dam, string|string* dam_type, int|mapping spell,
                         object enemy) {
-  if (!spell || (mappingp(spell) && spell[SP_PHYSICAL_ATTACK])) {
-    tell_object(enemy, BSLF(
-      "Kawumm ist so glaenzend blankpoliert, dass er Deinen Angriff glatt "
-      "reflektiert."));
-    tell_room(ENV(enemy), BSLF(
-      "Kawumm ist so glaenzend blankpoliert, dass er den Angriff von "+
-      enemy->name()+"glatt reflektiert."),
-      ({enemy}));
+  // Physische Attacken werden unveraendert behandelt:
+  if (!spell || (mappingp(spell) && spell[SP_PHYSICAL_ATTACK]))
+    return ::Defend(dam, dam_type, spell, enemy);
 
-    m_add(spell, SP_RECURSIVE, 1);
-    enemy->Defend(dam, dam_type, spell, enemy);
-    /* Wir geben hier 0 zurueck, sind also vollstaendig immun gegen
-       Spells ohne physische Schadenskomponente. Man koennte auch einen
-       kleinen Teil des Schadens durchkommen lassen, aber dann haette
-       der Zwerg einen anderen Namen: */
-    return 0;
-  }
-  return ::Defend(dam, dam_type, spell, enemy);
+  tell_object(enemy, BSLF(
+    "Kawumm ist so glaenzend blankpoliert, dass er Deinen Angriff glatt "
+    "reflektiert."));
+  tell_room(ENV(enemy), BSLF(
+    "Kawumm ist so glaenzend blankpoliert, dass er den Angriff von "+
+    enemy->name()+"glatt reflektiert."),
+    ({enemy}));
+
+  m_add(spell, SP_RECURSIVE, 1);
+  enemy->Defend(dam, dam_type, spell, enemy);
+  /* Wir geben hier 0 zurueck, sind also vollstaendig immun gegen
+     Spells ohne physische Schadenskomponente. Man koennte auch einen
+     kleinen Teil des Schadens durchkommen lassen, aber dann haette
+     der Zwerg einen anderen Namen: */
+  return 0;
 }
