diff --git a/npc/zwerg7.c b/npc/zwerg7.c
index c082e92..e9d42ab 100644
--- a/npc/zwerg7.c
+++ b/npc/zwerg7.c
@@ -39,14 +39,14 @@
 
   if (sizeof(hauer)) {
     tell_room(ENV(), BSLF(
-      "Krawumm vergisst, von wem er schon alles gehauen wurde. Seine "
+      "Kawumm vergisst, von wem er schon alles gehauen wurde. Seine "
       "Blessuren verschwinden wie von Magierhand."));
     hauer = ([]);
   }
 }
 
 private string look() {
-  string msg = "Dies ist Krawumm, der Zwerg. ";
+  string msg = "Dies ist Kawumm, der Zwerg. ";
   if (!sizeof(hauer)) {
     msg += "Niemand hat ihm bisher eins auf die Omme gehauen, obwohl er so "
       "verfuehrerisch herumsteht.\n";
@@ -55,21 +55,21 @@
       CountUp(m_indices(hauer))+".\n";
   }
   msg += "Wenn Du ihm was draufsemmeln willst, dann versuche einfach:\n"
-    "  haue krawumm";
+    "  haue kawumm";
   return BSLF(msg);
 }
 
 private int hauen() {
   if (TP->QueryProp(MYPROP)) {
     tell_object(TP, BSLF(
-      "Aber nicht doch. Du hast Krawumm bereits gehauen."));
+      "Aber nicht doch. Du hast Kawumm bereits gehauen."));
   } else {
     tell_object(TP, BSLF(
-      "Gut, Du haust also Krawumm welche auf die Omme. Krawumm zuckt kurz, "
+      "Gut, Du haust also Kawumm welche auf die Omme. Kawumm zuckt kurz, "
       "steht dann aber unbewegt weiter rum. Er hat sich das aber bestimmt "
       "gemerkt ..."));
     tell_room(ENV(), BSLF(
-      TPN+" haut Krawumm eins auf die Omme. Dem scheint das aber nicht viel "
+      TPN+" haut Kawumm eins auf die Omme. Dem scheint das aber nicht viel "
       "auszumachen. Typisch Zwerg, solange er Alk kriegt, ist er zufrieden."),
       ({TP}));
     TP->SetProp(MYPROP, 1);
