diff --git a/d/seher/haeuser/moebel/wasch.c b/d/seher/haeuser/moebel/wasch.c
index 1dd8204..92ee2a5 100644
--- a/d/seher/haeuser/moebel/wasch.c
+++ b/d/seher/haeuser/moebel/wasch.c
@@ -2,8 +2,7 @@
 // Letzte Aenderung:    01.04.2005
 // Magier:              Seleven
 // Dieses File gibt dem Spieler die Moeglichkeit, eine Waschgelegenheit in
-// seinem Seherhaus aufzustellen. Das beim Kommando wasch(e), dusch(e) laesst
-// sich die Medung ueberschreiben (Test per raum->QueryProp("h_commands"))
+// seinem Seherhaus aufzustellen.
 // 01.07.2007 (Zesstra): GetOwner() definiert.
 //----------------------------------------------------------------------------
 #pragma strong_types,rtt_checks
@@ -11,7 +10,6 @@
 #include "schrankladen.h"
 inherit LADEN("swift_std_container");
 
-string *wcmd;
 string *objekte =
   (({"\nstinkobj","\nzesstra_asche","seleve\nscheisse","\npopc",
      "\nsspbollen","seleve\nstinkobj","\nq2p_gestank","ber\tram_skot",
@@ -19,32 +17,29 @@
 /* Wurzel(Klo/Imbiss), Zesstra(Vulkan/Illuminatos), Seleven(Klo/Nebelelfen),
  * Seleven(Popcorn/Nebelelfen), Boing(Schleimschmeisser,SSP), STANDART
  */
+#define XLOOK_IDS ({"saitha_unterwelt_staub_haende",\
+ "saitha_unterwelt_staub_ueberall","saitha_unterwelt_schimmel",\
+ })
 
 static void wasch_fun();
 
 protected void create()
 {
-  if (!clonep(this_object())) return;
+  if (!clonep(this_object()))
+  {
+      set_next_reset(-1);
+      return;
+  }
   ::create();
 
-  wcmd = (({"wasche","wasch","dusche","dusch"}));
   AddId(({"duschkabine","kabine","dusche","waschgelegenheit"}));
   SetProp(P_NAME,"Duschkabine");
-  
-  SetProp("cnt_version_obj",1);
+  SetProp("cnt_version_obj",2);
 
   SetProp("obj_cmd",
   "wasch(e), dusch(e)\n"+
-  "   Damit laesst sich das Stinken aus dem Imbissklo beseitigen.\n"+
-  "   Wenn kein Befehl 'wasch(e)' im Raum beschrieben ist, erfolgt eine\n"+
-  "   Standartmeldung, selbiges gilt fuer 'dusch(e)'.\n"+
-  "ssetz(e) waschbefehl\n"+
-  "   Damit kann man die Befehlsliste erweitern, die das Waschen \n"+
-  "   ausloesen\n"+
-  "sloesch(e) waschbefehl\n"+
-  "   Damit kann man einen Befehl aus der Liste loeschen\n"+
-  "waschbefehlsliste, wbl"+
-  "   Zeigt eine Liste der Befehle an, die das Waschen ausloesen.\n");
+  "   Damit lassen sich verschiedene Verunreinigungen von Deinem Koerper\n"
+  "   abwaschen.\n");
 
   SetProp(P_SHORT,"Eine Duschkabine");
   SetProp(P_LONG,BS("Die Duschkabine hat einen Rahmen aus hellem Holz. "
@@ -57,22 +52,20 @@
    "Man kann niemanden beim Duschen beobachten.\n");
 
   SetProp(P_GENDER, FEMALE);
-  SetProp(P_WEIGHT, 5000);         // Gewicht 5 Kg
+  SetProp(P_WEIGHT, 25000);        // Gewicht 25 Kg
   SetProp(P_MAX_WEIGHT, 0);        // Soll nur n pseudo-Container
-  SetProp(P_WEIGHT_PERCENT, 100);  // Dafuer macht er auch nix leichter :)
   SetProp(P_MAX_OBJECTS, 0);       // Kein Container :)
   SetProp(P_VALUE, 0);             // Ist eh nicht verkaufbar.
-  SetProp(P_NOBUY, 1);             // Fals doch: zerstoeren!
+  SetProp(P_NOBUY, 1);             // Falls doch: zerstoeren!
   SetProp(P_NOGET,
     "Das geht nicht. "+Name(WER,1)+" haftet wie magisch am Boden.\n");
-  SetProp(P_MATERIAL, ({MAT_MISC_WOOD, MAT_MISC_MAGIC}) );
+  SetProp(P_MATERIAL, ([MAT_MISC_WOOD:20, MAT_GLASS: 30,
+                        MAT_MARBLE: 40,
+                        MAT_MISC_MAGIC:5, MAT_BRASS:5]) );
   SetProp(P_INFO, "Versuchs mal mit: \"skommandos "+QueryProp(P_IDS)[1]+"\" !\n");
 
-  AddCmd(wcmd,"cmd_waschen");
+  AddCmd(({"wasche","wasch","dusche","dusch"}),"cmd_waschen");
   RemoveCmd(({"oeffne","oeffn","schliesse","schliess"}));
-  AddCmd(({"ssetze","ssetz"}),"cmd_setzen");
-  AddCmd(({"sloesche","sloesche"}),"cmd_loeschen");
-  AddCmd(({"wbl","waschbefehlsliste"}),"liste");
 }
 
 // Zesstra, 1.7.07, fuers Hoerrohr
@@ -82,101 +75,34 @@
 
 static void wasch_fun()
 {
-  int i;
-  object ob;
-  i = sizeof(objekte);
-  i--;
-  while(i > -1)
+  if(!TP) return;
+  foreach(string obj_id : objekte)
   {
-
-    if(!TP) return;
-    ob = present(objekte[i],TP);
-    while(ob)
+    object ob;
+    while(ob = present(obj_id,TP))
     {
-      if(query_once_interactive(ob))
-	  {
-	    tell_object(TP,BS("Du scheinst jemanden in Deinem Inv zu haben!\n"
-	     "Das sollte sich vielleicht ein Magier anschauen."));
-	    i--;
-	    return;
-      }
       ob->remove(1);
-      if(present(objekte[i],TP));
-       ob = present(objekte[i],TP);
     }
-    i--;
-
+  }
+  foreach(string xlid: XLOOK_IDS)
+  {
+    TP->RemoveExtraLook(xlid);
   }
 }
 
 int cmd_waschen(string str)
 {
-  string verb;
-  verb = query_verb();
-  if(!environment()) return 0;
   if( !erlaubt() )
   {
       write("Du solltest den Besitzer vielleicht um Erlaubnis bitten.\n");
       return 1;
   }
-  if(member(environment()->QueryProp("h_commands"),verb) == 0)
-  {
-    write(
-     "Du springst schnell unter die Dusche und waeschst Dich gruendlich.\n");
-    say(this_player()->Name(WER)+" springt schnell unter die Dusche.\n");
-    wasch_fun();
-    return 1;
-  }
+  write("Du springst schnell unter die Dusche und waeschst Dich gruendlich.\n");
+  say(this_player()->Name(WER)+" springt schnell unter die Dusche.\n");
   wasch_fun();
   return 1;
 }
 
-
-static int cmd_setzen(string str)
-{
-  string bef;
-  notify_fail("Moechtest Du einen Waschbefehl setzen?\n"+
-    "Syntax: ssetz(e) waschbefehl [befehl]\n");
-  if(!str || !stringp(str) || sizeof(str) == 0) return 0;
-  sscanf(str,"waschbefehl %s",bef);
-  if(!bef) return 0;
-  if(bef[sizeof(bef) .. sizeof(bef)-1] == "e")
-   bef = bef[sizeof(bef) .. sizeof(bef)-2];
-  notify_fail("Der Befehl steht schon auf der Liste.\n");
-  if(member(wcmd,bef) != -1) return 0;
-  wcmd += (({bef,bef+"e"}));
-  AddCmd(wcmd,"cmd_waschen");
-  write(BS("Du hast die Befehle "+bef+" und "+bef+"e an die Liste "
-   "angefuegt."));
-  return 1;
-}
-
-static int cmd_loeschen(string str)
-{
-  string bef;
-  notify_fail("Moechtest Du einen Waschbefehl loeschen?\n"+
-    "Syntax: sloesch(e) waschbefehl [befehl]\n");
-  if(!str || !stringp(str) || sizeof(str) == 0) return 0;
-  sscanf(str,"waschbefehl %s",bef);
-  if(!bef) return 0;
-  notify_fail("Der Befehl steht gar nicht auf der Liste.\n");
-  if(member(wcmd,bef) == -1) return 0;
-  wcmd -= (({bef}));
-  RemoveCmd(bef);
-  write(BS("Du hast die Befehle "+bef+" und "+bef+"e von der Liste "
-   "entfernt."));
-  return 1;
-}
-
-static int liste(string str)
-{
-  write("Du hast folgende Befehle auf der Waschliste stehen:\n"+
-   break_string(implode(wcmd,", "),78,3));
-  return 1;
-}
-
-
-
 // oeffnen und schliessen ausbauen.
 varargs int skommandos(string str)
 {
@@ -188,23 +114,21 @@
   write("=============================================================================\n");
   write("Aktuelle Version: "+QueryProp("cnt_version_std")+QueryProp("cnt_version_obj")+"\n");
   write( BS(Name(WER,1)+" kann nur in diesem Seherhaus verwendet werden, "
-    +"da "+QueryPronoun(WER)+" speziell dafuer gekauft wurde. "+CAP(QueryPronoun(WER))
-    +" verfuegt ueber folgende Kommandos:")
-    +"-----------------------------------------------------------------------------\n"
-    +"serlaube [Objekt-Id] [Spielername|\"hausfreunde\"|\"zweities\"]\n"
-    +"  Erlaubt Personen, "+name(WEN,1)+" mitzubenutzen.\n"
-    +"  serlaube + Objekt-Id (ohne Spielername/hausfreunde)\n"
-    +"  listet alle Personen mit Zugriff auf "+name(WEN,1)+"\n\n"
-    +"verschiebe [Objekt-Id] nach [Ausgang]\n"
-    +"  Damit kannst Du "+name(WEN,1)+" innerhalb Deines Seherhauses verschieben.\n\n"
-  //Seleven 07.12.2005
-    +"sverstecke [Objekt-Id]\n"
-    +"  Damit machst Du "+name(WEN,1)+" unsichtbar.\n"
-    +"shole [Objekt-Id] hervor\n"
-    +"  Damit machst Du "+name(WEN,1)+" wieder sichtbar.\n"
-  // Bis hier
-    +"zertruemmer [Objekt-Id]\n"
-    +"  Damit zerstoerst Du "+name(WEN,1)+".\n\n");
+    "da "+QueryPronoun(WER)+" speziell dafuer gekauft wurde. "+CAP(QueryPronoun(WER))
+    " verfuegt ueber folgende Kommandos:")
+    "-----------------------------------------------------------------------------\n"
+    "serlaube [Objekt-Id] [Spielername|\"hausfreunde\"|\"zweities\"]\n"
+    "  Erlaubt Personen, "+name(WEN,1)+" mitzubenutzen.\n"
+    "  serlaube + Objekt-Id (ohne Spielername/hausfreunde)\n"
+    "  listet alle Personen mit Zugriff auf "+name(WEN,1)+"\n\n"
+    "verschiebe [Objekt-Id] nach [Ausgang]\n"
+    "  Damit kannst Du "+name(WEN,1)+" innerhalb Deines Seherhauses verschieben.\n\n"
+    "sverstecke [Objekt-Id]\n"
+    "  Damit machst Du "+name(WEN,1)+" unsichtbar.\n"
+    "shole [Objekt-Id] hervor\n"
+    "  Damit machst Du "+name(WEN,1)+" wieder sichtbar.\n"
+    "zertruemmer [Objekt-Id]\n"
+    "  Damit zerstoerst Du "+name(WEN,1)+".\n\n");
 
 
   if( QueryProp("obj_cmd") )
