diff --git a/d/seher/haeuser/hausverwalter.c b/d/seher/haeuser/hausverwalter.c
index 26643d1..058a77b 100644
--- a/d/seher/haeuser/hausverwalter.c
+++ b/d/seher/haeuser/hausverwalter.c
@@ -117,7 +117,8 @@
     return 1;
   }
   
-  catch(ar = (int)(PATH+"access_rights")->access_rights(geteuid(this_interactive()), "haus.h"));
+  catch(ar = ({int})(PATH+"access_rights")->access_rights(
+                      geteuid(this_interactive()), "haus.h"));
 
   // Erzmagier und alle mit Schreibrechten auf haus.h duerfen
   if ( (this_interactive() == this_player()) &&
@@ -188,7 +189,8 @@
       printf("error loading %O!\n", hname);
       continue;
     }
-    foreach (string dir, string path : (mapping)(here->QueryProp(P_EXITS))) {
+    foreach (string dir, string path : ({mapping})(here->QueryProp(P_EXITS)))
+    {
       // betrachte alle Ausgaenge
       if (dir == "raus") {
         // Haustuer aus dem Hauptraum darf natuerlich rausfuehren
diff --git a/d/seher/haeuser/traghaus.c b/d/seher/haeuser/traghaus.c
index 7a55bb8..a0c5e41 100644
--- a/d/seher/haeuser/traghaus.c
+++ b/d/seher/haeuser/traghaus.c
@@ -177,7 +177,7 @@
 Du wirfst noch einmal einen verstohlenen Blick auf die Giesskanne, musst aber\n\
 feststellen, dass sie verschwunden ist und auch verschwunden bleibt.\n" );
 
-  say(capitalize((string)(this_player()->name()))+" verwandelt mit einem Tropfen Wasser "+
+  say(capitalize(this_player()->name())+" verwandelt mit einem Tropfen Wasser "+
       this_player()->QueryPossPronoun(this_object(), WEN) + " Haus.\n");
 
   VERWALTER->NeuesHaus(owner, environment(this_object()));
diff --git a/d/seher/haeuser/virtual_compiler.c b/d/seher/haeuser/virtual_compiler.c
index a4f844c..7e05245 100644
--- a/d/seher/haeuser/virtual_compiler.c
+++ b/d/seher/haeuser/virtual_compiler.c
@@ -38,7 +38,7 @@
   // Zeiger auf Cloneliste holen
   if (call_other(MEMORY,"HaveRights")) {
     // Objektpointer laden
-    objects = (mixed) call_other(MEMORY,"Load","objects");
+    objects = call_other(MEMORY,"Load","objects");
 
     // Hats geklappt?
     if (!mappingp(objects)) 
@@ -68,11 +68,11 @@
 
   if (name[<6..<3] == "haus" )
   {
-    ob = (object) (VERWALTER)->_LadeHaus(name[0..<7]);
+    ob = ({object})(VERWALTER)->_LadeHaus(name[0..<7]);
   }
   else if (name[<7..<4] == "raum" )
   {
-    ob = (object) (VERWALTER)->_LadeRaum(name[0..<8], to_int(name[<3..<3]));
+    ob = ({object})(VERWALTER)->_LadeRaum(name[0..<8], to_int(name[<3..<3]));
   } 
   else 
   {
@@ -94,7 +94,7 @@
   Soll die Liste der Objekte zum VC per QueryObjects ausgegeben werden oder nicht?
 */
   
-int ToggleCloneList()
+void ToggleCloneList()
 {
   show_clone_list ^= 1;
   tell_object(this_player(), "Die Clone List wird nun "+
