Aenderungen fuer wieder funktionierendes strict_types

- Deklarative Casts hinzugefuegt
- Typen gefixt

Change-Id: I44c6082d907efb241a35da248774809054f8c5ab
diff --git a/items/money.c b/items/money.c
index f6a5173..c971d9d 100644
--- a/items/money.c
+++ b/items/money.c
@@ -17,7 +17,7 @@
 // zum debuggen (debugmode kommt aus /std/unit.c
 #include <living/comm.h>
 #define ZDEBUG(x) if (stringp(debugmode) && find_player(debugmode)) \
-  find_player(debugmode)->ReceiveMsg(x,MT_DEBUG,0,object_name()+": ",ME)
+  ({int})find_player(debugmode)->ReceiveMsg(x,MT_DEBUG,0,object_name()+": ",ME)
 //#define ZDEBUG(x)
 
 protected void NotifyMove(object dest, object oldenv, int method)
@@ -30,7 +30,7 @@
         !query_once_interactive(previous_object()) &&
         load_name(previous_object()) != GELD) &&
         moneylog)
-      moneylog->AddMoney( previous_object(), Query(U_REQ) );
+      ({void})moneylog->AddMoney( previous_object(), Query(U_REQ) );
 
   // Hier passiert Vereinigung mit anderen Geldobjekten... Etc.
   ::NotifyMove(dest, oldenv, method);
@@ -68,7 +68,7 @@
                     || present(BOERSEID, environment());
     if (boerse)
     {
-      boerse->MergeMoney(this_object());
+      ({void})boerse->MergeMoney(this_object());
       // Sollten wir jetzt P_AMOUNT == 0 haben, zerstoert uns der Code aus
       // unit.c spaeter.
       ZDEBUG(sprintf("NotifyMove nach Boersenvereinigung 1: amount: %d\n",
@@ -80,7 +80,7 @@
     object boerse = present(GELDBOERSE_MIT_GELD, environment());
     if (boerse)
     {
-      boerse->MergeMoney(this_object());
+      ({void})boerse->MergeMoney(this_object());
       ZDEBUG(sprintf("NotifyMove nach Boersenvereinigung 2: amount: %d\n",
              QueryProp(P_AMOUNT)));
     }
@@ -90,7 +90,7 @@
       object geldkarte = present(SEHERKARTEID_AKTIV, environment());
       if (geldkarte)
       {
-        geldkarte->MergeMoney(this_object());
+        ({void})geldkarte->MergeMoney(this_object());
         ZDEBUG(sprintf("NotifyMove nach Kartenvereinigung: amount: %d\n",
                QueryProp(P_AMOUNT)));
       }
@@ -140,13 +140,13 @@
   ((Query(U_REQ)==1)?"Du nimmst die Muenze":
                      "Du nimmst eine der Muenzen")+
   " und schnippst sie in die Luft. Sie klingt hell auf. "+
-  ((this_player() && this_player()->QueryAttribute(A_DEX)>10)?
+  ((this_player() && ({int})this_player()->QueryAttribute(A_DEX)>10)?
    "Geschickt faengst Du sie wieder auf.":
    "Sie plumpst Dir wieder in die Hand und beinahe laesst Du "
    "sie fallen."),78));
  if(this_player() && environment(this_player()))
   tell_room(environment(this_player()),
-            break_string(this_player()->Name()+" schnippt mit hellem "
+            break_string(({string})this_player()->Name()+" schnippt mit hellem "
                          "Klingen ein Muenze in die Luft und faengt sie "
                          "wieder.",78),
             ({this_player()}));
@@ -163,7 +163,7 @@
   78));
  if(this_player() && environment(this_player()))
   tell_room(environment(this_player()),
-            break_string(this_player()->Name()+" beisst in eine Muenze "
+            break_string(({string})this_player()->Name()+" beisst in eine Muenze "
                          "und schaut irgendwie befriedigt drein.",78),
             ({this_player()}));
  return 1;
@@ -213,7 +213,7 @@
 	   "betrachtest das Ergebnis:", 78));
   if (this_player() && environment(this_player()))
     tell_room(environment(this_player()),
-	      break_string(this_player()->Name()+" wirft "+
+	      break_string(({string})this_player()->Name()+" wirft "+
          	   ((num==1)?"eine Muenze":
 			   sprintf("%d Muenzen", num))+
 		   " hoch, laesst sie zu Boden prasseln und betrachtet "
@@ -276,10 +276,10 @@
 	((num==1)?"Deine Muenze":"Deine Muenzen")+" wieder ein.", 78));
   if (this_player() && environment(this_player()))
     tell_room(environment(this_player()),
-	      break_string(this_player()->Name()+ " sammelt schnell "+
-	      ((num==1)?(this_player()->QueryPossPronoun(FEMALE,WEN, SINGULAR)
+	      break_string(({string})this_player()->Name()+ " sammelt schnell "+
+	      ((num==1)?(({string})this_player()->QueryPossPronoun(FEMALE,WEN, SINGULAR)
 			 +" Muenze wieder ein."):
-	       (this_player()->QueryPossPronoun(FEMALE,WEN, PLURAL)+
+	       (({string})this_player()->QueryPossPronoun(FEMALE,WEN, PLURAL)+
 		" Muenzen wieder ein."))), ({this_player()}));
   return 1;
 }
diff --git a/obj/entsorg.c b/obj/entsorg.c
index 6fdda13..f5163ed 100644
--- a/obj/entsorg.c
+++ b/obj/entsorg.c
@@ -50,7 +50,7 @@
   notify_fail("So etwas hast Du nicht.\n");
   if((!ob=present(s2,this_player())) && 
      (!ob=present(s2,environment()))) return 0;
-  if(ob->QueryProp(P_NODROP) || ob->QueryProp(P_NEVERDROP)){
+  if(({int|string})ob->QueryProp(P_NODROP) || ({int})ob->QueryProp(P_NEVERDROP)){
     write("Das kannst Du nicht wegwerfen.\n");
     return 1;
   }
@@ -58,15 +58,15 @@
     write("Der Muellschlucker frisst keine Lebewesen.\n");
     return 1;
   }
-  if(ob->QueryProp(P_VALUE)){
+  if(({int})ob->QueryProp(P_VALUE)){
     write("Das ist zu wertvoll, das vertraegt der Muellschlucker nicht.\n");
     return 1;
   }
-  if (ob->QueryProp(P_CURSED)) {
+  if (({int})ob->QueryProp(P_CURSED)) {
     write("Verfluchte Dinge bekommen dem Muellschlucker nicht!\n");
     return 1;
   }
-  ob->remove();
+  ({int})ob->remove();
   if(ob){
     write("Aus irgendeinem Grund scheint das dem Muellschlucker nicht "+
     "zu schmecken.\n");
diff --git a/obj/tools/MGtool.c b/obj/tools/MGtool.c
index 4656d68..5619ecf 100644
--- a/obj/tools/MGtool.c
+++ b/obj/tools/MGtool.c
@@ -399,9 +399,9 @@
 static void dprop(string key, mixed data, object obj)
 {
   if(pipe_out&&pipe_of)
-    write_file(pipe_of,break_string_hard(mixed_to_string(obj->QueryProp(key),MAX_RECURSION),78,ALEFT(key+" ",18,".")+" = "));
+    write_file(pipe_of,break_string_hard(mixed_to_string(({mixed})obj->QueryProp(key),MAX_RECURSION),78,ALEFT(key+" ",18,".")+" = "));
   else
-    W(break_string_hard(mixed_to_string(obj->QueryProp(key),MAX_RECURSION),78,ALEFT(key+" ",18,".")+" = "));
+    W(break_string_hard(mixed_to_string(({mixed})obj->QueryProp(key),MAX_RECURSION),78,ALEFT(key+" ",18,".")+" = "));
 }
 
 static string propflags(string key, object ob)
diff --git a/obj/tools/MGtool/toolcmd.c b/obj/tools/MGtool/toolcmd.c
index 59bfbcb..ad6b3aa 100644
--- a/obj/tools/MGtool/toolcmd.c
+++ b/obj/tools/MGtool/toolcmd.c
@@ -60,7 +60,7 @@
     {
       obj=find_object(LPC_FILE);
       ru1=rusage();
-      error=catch(res=obj->eval(callobj, cloner, ENV(cloner)));
+      error=catch(res=({mixed})obj->eval(callobj, cloner, ENV(cloner)));
       ru2=rusage();
       if(error)
 	W("Error: "+error[1..]);
@@ -183,7 +183,7 @@
   TK("Xcd: str: "+(str?str:"(NULL)"));
   if(!str)
   {
-    if(!(path=cloner->QueryProp("start_home")))
+    if(!(path=({string})cloner->QueryProp("start_home")))
       path="/";
   }
   else if((dest=XFindObj(str,1)))
@@ -233,7 +233,7 @@
     m_add(variable, "clone", obj);
     if(!MoveObj(obj, ENV(cloner), TRUE))
       WDLN("Cannot move object into this room");
-    else if(!obj->QueryNoGet())
+    else if(!({mixed})obj->QueryNoGet())
     {
       if(!MoveObj(obj, cloner, TRUE))
 	WDLN("Cannot move object into your inventory");
@@ -265,7 +265,7 @@
     variable["clone"] = obj;
     if(!MoveObj(obj, ENV(cloner), TRUE))
       WDLN("Cannot move object into this room");
-    else if(!obj->QueryNoGet())
+    else if(!({mixed})obj->QueryNoGet())
     {
       if(!MoveObj(obj, cloner, TRUE))
 	WDLN("Cannot move object into your inventory");
@@ -487,7 +487,7 @@
   else
   {
     ru1=rusage();
-    error=catch(res=obj->eval(cloner, ENV(cloner)));
+    error=catch(res=({mixed})obj->eval(cloner, ENV(cloner)));
     ru2=rusage();
     if(error)
       W("Error: "+error[1..]);
@@ -928,7 +928,7 @@
     return FALSE;
   PIPE_DELETE(pipe_of);
   if(!(pipe_out&&pipe_of))
-    WLN(who->name(WESSEN)+" Inventory:"+(short?" (short)":""));
+    WLN(({string})who->name(WESSEN)+" Inventory:"+(short?" (short)":""));
   if(!short)
     if(pipe_out&&pipe_of)
       FORALL(item, who) PrintShort(ARIGHT(++i+". ", 4, " "), item, pipe_of);
@@ -952,7 +952,7 @@
   if(!(daemon=load_object(LAG_O_DAEMON)))
     lag=({-1.0,-1.0,-1.0});
   else
-    lag=daemon->read_lag_data();
+    lag=({float*})daemon->read_lag_data();
   lags="Letzte 60 min: ";
   if(lag[0]>=0.0)
   {
@@ -998,7 +998,7 @@
     cloner->AddIntLight(addlight);
   }
   WDLN("Current light levels: "+TOOL_NAME+"="+xlight+", room="+
-       ENV(cloner)->QueryIntLight());
+       ({int})ENV(cloner)->QueryIntLight());
   return TRUE;
 }
 
@@ -1102,7 +1102,7 @@
   else
   {
     ru1=rusage();
-    error=catch(res=obj->eval(cloner, ENV(cloner)));
+    error=catch(res=({mixed})obj->eval(cloner, ENV(cloner)));
     ru2=rusage();
     if(error)
       W("Error: "+error[1..]);
@@ -1266,12 +1266,12 @@
     opt="";
   else
     opt=implode(strs[0..s-3], " ");
-  if(!(dir="/"+MASTER->valid_read(strs[s-2], geteuid(),
+  if(!(dir="/"+({int})MASTER->valid_read(strs[s-2], geteuid(),
 					  "get_dir", ME))) {
     WDLN("No permission to open directory for reading");
     return TRUE;
   }
-  if(!(file="/"+MASTER->valid_write(strs[s-1], geteuid(),
+  if(!(file="/"+({int})MASTER->valid_write(strs[s-1], geteuid(),
 					    "write_file", ME))) {
     WDLN("No permission to open script file for writing");
     return TRUE;
@@ -1380,7 +1380,7 @@
   }
   else if(obj=XFindObj(str))
   {
-    if(xpr=obj->__query_xprof_data__())
+    if(xpr=({mixed})obj->__query_xprof_data__())
     {
       funcs=m_indices(xpr);
       data=m_values(xpr);
diff --git a/obj/tools/fehlerteufel.c b/obj/tools/fehlerteufel.c
index 7b9c8e6..664eb07 100644
--- a/obj/tools/fehlerteufel.c
+++ b/obj/tools/fehlerteufel.c
@@ -58,7 +58,7 @@
 {
   if (!issue) return 0;
 
-  string txt=ERRORD->format_error(issue, 0);
+  string txt=({string})ERRORD->format_error(issue, 0);
 
   if (!stringp(txt) || !sizeof(txt))
       return 0;
@@ -196,7 +196,7 @@
   {
     if (!(m & modus))
       continue;
-    < <int|string>* >* list = ERRORD->QueryIssueListByLoadname(loadname,m);
+    < <int|string>* >* list = ({< <int|string>* >*})ERRORD->QueryIssueListByLoadname(loadname,m);
     if (pointerp(list))
     {
       foreach(<int|string>* row : list)
@@ -892,9 +892,10 @@
        return;
    }
    SetProp(P_EXTRA_LOOK,break_string(
-         "Auf "+environment()->Name(WESSEN)+" Schulter sitzt ein kleiner "
+         "Auf "+({string})environment()->Name(WESSEN)
+         +" Schulter sitzt ein kleiner "
          "Fehlerteufel, der "
-         +environment()->QueryPronoun(WEM)
+         +({string})environment()->QueryPronoun(WEM)
          +" immer wieder etwas ins Ohr fluestert.",78));
 
    call_out("reset",1);
@@ -1034,7 +1035,7 @@
 
 private struct fullissue_s|struct fullissue_s* get_issues(string arg)
 {
-  arg=PL->_unparsed_args();
+  arg=({string})PL->_unparsed_args();
   struct fullissue_s|struct fullissue_s* issues;
 
   // Erstmal schauen, ob arg eine ID ist.
@@ -1046,7 +1047,7 @@
     // wird im aktuellen Verzeichnis gesucht.
     if(sizeof(arg) && arg[0] != '/')
     {
-      arg=PL->QueryProp(P_CURRENTDIR)+"/"+arg;
+      arg=({string})PL->QueryProp(P_CURRENTDIR)+"/"+arg;
     }
     issues=({});
     foreach(int m: ALL_ERR_TYPES)
diff --git a/obj/tools/lupe.c b/obj/tools/lupe.c
index 94da478..b751d58 100644
--- a/obj/tools/lupe.c
+++ b/obj/tools/lupe.c
@@ -183,7 +183,7 @@
   {
     case "erzaehl": return tell(str);
   }
-  str=PL->_unparsed_args();
+  str=({string})PL->_unparsed_args();
   for (i=0;i<maxverb;i++)
     if (commands[i]==verb[0..sizeof(commands[i])-1])
       if (ret=evalcmd(str))
@@ -199,14 +199,14 @@
   int ret;
 
   if (!IS_ARCH(this_interactive())) return 0;
-  if (!(str=this_interactive()->_unparsed_args())) return 0;
+  if (!(str=({string})this_interactive()->_unparsed_args())) return 0;
   if (sizeof(tmp=old_explode(str," "))<2) return 0;
   if (!(who=find_player(tmp[0]))) return 0;
   if (!(sn=query_snoop(who))) return 0;
   if (query_wiz_grp(this_interactive())<=query_wiz_grp(sn) ||
       query_wiz_grp(this_interactive())<=query_wiz_grp(who)) return 0;
   snoop(sn,0);
-  ret=this_interactive()->_erzaehle(str);
+  ret=({int})this_interactive()->_erzaehle(str);
   snoop(sn,who);
   return ret;
 }
@@ -433,7 +433,7 @@
 mixed pl(string arg)
 {
   string who,rest;
-  object p;
+  string|object p;
   who=getarg(arg);
   rest=getrest(arg);
   if (err) return 0;
@@ -488,7 +488,7 @@
   if (!err)
   {
     push(ob);
-    ob->move(this_player(),M_NOCHECK);
+    ({int})ob->move(this_player(),M_NOCHECK);
     write("Created "+desc(ob)+".\n");
   }
   else
@@ -753,8 +753,8 @@
     return "<corrupted stack entry>";
   if (query_once_interactive(ob))
     return object_name(ob)+" "+capitalize(geteuid(ob));
-  if (!hide_short && ob->short())
-    return object_name(ob)+" "+ob->name();
+  if (!hide_short && ({string})ob->short())
+    return object_name(ob)+" "+({string})ob->name();
   else
     return object_name(ob);
 }
@@ -786,8 +786,8 @@
   if (err) return arg;
   push(ob);
   write("FILENAME: "+object_name(ob)+" ");
-  if (!hide_short && (s=ob->short()))
-    write(" SHORT: "+ob->name());
+  if (!hide_short && (({string})s=ob->short()))
+    write(" SHORT: "+({string})ob->name());
   write("\n");
   return arg;
 }
@@ -800,8 +800,8 @@
   ob=pop();
   if (err) return arg;
   write("FILENAME: "+object_name(ob)+" ");
-  if (s=ob->short())
-    write(" SHORT: "+ob->name());
+  if (s=({string})ob->short())
+    write(" SHORT: "+({string})ob->name());
   write("\n");
   if (getuid(ob))
     write("CREATOR: "+getuid(ob)+"\n");
@@ -811,26 +811,26 @@
 	  + query_idle(ob)+"\n");
   }
   if (s=query_snoop(ob))
-    write("SNOOPED BY: "+s->query_real_name()+"\n");
+    write("SNOOPED BY: "+({string})s->query_real_name()+"\n");
   s="";
   if (living(ob))
     s +="living ";
-  if (ob->query_npc())
+  if (({int})ob->query_npc())
     s+="npc ";
-  if (ob->query_gender_string())
-    s+=ob->query_gender_string();
+  if (({string})ob->query_gender_string())
+    s+=({string})ob->query_gender_string();
   if (s!="")
     write("FLAGS: "+s+"\n");
   //  write("LONG:\n");
-  //  if (stringp(s=ob->long()))
+  //  if (stringp(s=({string})ob->long()))
   //    write(s);
   //  write("\n");
   for (i=0;i<sizeof(query_list);i+=2)
   {
     if (query_list[i+1][0]=='-')
-      s=ob->QueryProp(query_list[i+1][1..]);
+      s=({string})ob->QueryProp(query_list[i+1][1..]);
     else
-      s=call_other(ob,query_list[i+1]);
+      s=({string})call_other(ob,query_list[i+1]);
     if (s)
     {
       printf("%s: %O\n",query_list[i],s);
@@ -1046,9 +1046,9 @@
   if (!a)
   {
     printf("Removing %O",ob);
-    if (!hide_short) printf(" %O",ob->name());
+    if (!hide_short) printf(" %O",({string})ob->name());
   }
-  catch(ob->remove());
+  catch(({int})ob->remove());
   if (ob)
   {
     if (!a) printf(" HARD");
@@ -1084,7 +1084,7 @@
 {
   object p,p2;
   p=first_inventory(ob);
-  while (p && p->id(str) && destroyable(p))
+  while (p && ({int})p->id(str) && destroyable(p))
   {
     if (recursive) clean(p);
     Remove(p,0);
@@ -1093,7 +1093,7 @@
   while (p)
   {
     p2=next_inventory(p);
-    if (p2 && p2->id(str) && destroyable(p2))
+    if (p2 && ({int})p2->id(str) && destroyable(p2))
     {
       if (recursive) clean(p2);
       Remove(p2,0);
@@ -1153,7 +1153,7 @@
   if (err) return arg;
   from=pop();
   if (err) return arg;
-  from->move(to,M_NOCHECK);
+  ({int})from->move(to,M_NOCHECK);
   write("Bewege "+desc(from)+" nach "+desc(to)+".\n");
   return arg;
 }
@@ -1262,7 +1262,7 @@
   for (i=sizeof(list)-1;i>=0;i--)
     if (list[i] && query_once_interactive(list[i]))
     {
-      list[i]->move("room/void",M_TPORT | M_SILENT | M_NO_SHOW | M_NOCHECK);
+      ({int})list[i]->move("room/void",M_TPORT | M_SILENT | M_NO_SHOW | M_NOCHECK);
     } else
       list[i]=0;
   list-=({0});
@@ -1279,7 +1279,7 @@
     }
     err=catch(ob=clone_object(file));
     if (!err)
-      ob->move(env,M_TPORT | M_SILENT | M_NO_SHOW | M_NOCHECK);
+      ({int})ob->move(env,M_TPORT | M_SILENT | M_NO_SHOW | M_NOCHECK);
   }
   else
   {
@@ -1296,7 +1296,7 @@
   }
   for (i=sizeof(list)-1;i>=0;i--)
     if (list[i])
-      list[i]->move(ob,M_TPORT | M_SILENT | M_NO_SHOW | M_NOCHECK);
+      ({int})list[i]->move(ob,M_TPORT | M_SILENT | M_NO_SHOW | M_NOCHECK);
   return arg;
 }
 
@@ -1454,7 +1454,7 @@
 
   ob=pop();
   if (err) return arg;
-  write(capitalize(ob->name(WER))+" ");
+  write(capitalize(({string})ob->name(WER))+" ");
   if (!query_once_interactive(ob))
   {
     write("ist kein echter Spieler.\n");
@@ -1477,7 +1477,7 @@
 {
   object ob;
   mapping quests;
-  mixed stats, *arr, tmp,tmp2, list;
+  mixed stats, arr, tmp,tmp2, list;
   string titel, level, stat_str,weapon,armour;
   int pl;
   int i;
@@ -1486,7 +1486,7 @@
   if (err)
     return arg;
   
-  titel=ob->QueryProp(P_TITLE);
+  titel=({string})ob->QueryProp(P_TITLE);
   if (!(pl=query_once_interactive(ob)))
     level="Monster="+old_explode(object_name(ob),"#")[0];
   else
@@ -1508,7 +1508,7 @@
       level="Seher";
     else level="Spieler";
   if (IS_DOMAINMEMBER(ob))
-    for (tmp="secure/master"->get_domain_homes(geteuid(ob));
+    for (tmp=({string*})"secure/master"->get_domain_homes(geteuid(ob));
 	 sizeof(tmp);tmp=tmp[1..])
       level+="-"+capitalize(tmp[0]);
   if (pl)
@@ -1518,54 +1518,54 @@
     else
       if (query_idle(ob)>600)
 	level+=", idle";
-    if (ob->QueryProp(P_GHOST))
+    if (({int})ob->QueryProp(P_GHOST))
       level+=", tot";
-    if (ob->QueryProp(P_INVIS))
+    if (({int})ob->QueryProp(P_INVIS))
       level+=", unsichtbar";
-    if (ob->QueryProp(P_FROG))
+    if (({int})ob->QueryProp(P_FROG))
       level+=", gruen und glitschig";
-    if (ob->QueryProp(P_TESTPLAYER))
+    if (({int|string})ob->QueryProp(P_TESTPLAYER))
       level+=", Testspieler";
   }
-  tmp=ob->QueryProp(P_PRESAY);
+  tmp=({string})ob->QueryProp(P_PRESAY);
   if (tmp && tmp!="")
     tmp=tmp+" ";
   else
     tmp="";
-  tmp2=ob->QueryProp(P_RACE);
+  tmp2=({string})ob->QueryProp(P_RACE);
   if(!tmp2)
     tmp2="Dingsda";
-  arr=ob->QueryProp(P_NAME);
+  arr=({string})ob->QueryProp(P_NAME);
   if (pointerp(arr)) arr=arr[0];
   printf("%s%s %s (%s)[%s].\n\n",tmp||"",arr||"",titel||"",
 	 tmp2||"??",level||"??");
   if (pl)
     printf("        Alter : %s.%s\n",
-	   timef(2*ob->QueryProp(P_AGE)),
-	   (tmp=ob->QueryProp(P_MARRIED))?
+	   timef(2*({int})ob->QueryProp(P_AGE)),
+	   (tmp=({string})ob->QueryProp(P_MARRIED))?
 	   ("Verheiratet mit "+capitalize(tmp)+"."):"");
   else
     printf("    Aggressiv : %4s          Gespraechig : %d%%\n",
-	   ob->QueryProp(P_AGGRESSIVE)? "Ja" : "Nein", 
-	   ob->QueryProp(P_CHAT_CHANCE)) ;
+	   ({int|float|mapping})ob->QueryProp(P_AGGRESSIVE)? "Ja" : "Nein", 
+	   ({int})ob->QueryProp(P_CHAT_CHANCE)) ;
   printf(" Lebenspunkte : [%4d/%4d]   Magiepunkte : [%4d/%4d]   " +
 	 "Erfahrung : %d\n",
-	 ob->QueryProp(P_HP), ob->QueryProp(P_MAX_HP), 
-	 ob->QueryProp(P_SP), ob->QueryProp(P_MAX_SP), 
-	 ob->QueryProp(P_XP));
+	 ({int})ob->QueryProp(P_HP), ({int})ob->QueryProp(P_MAX_HP), 
+	 ({int})ob->QueryProp(P_SP), ({int})ob->QueryProp(P_MAX_SP), 
+	 ({int})ob->QueryProp(P_XP));
   printf("      Nahrung : [%3d/%d]    Fluessigkeit : [%3d/%d]       " +
 	 "Alkohol : [%3d/%d]\n",
-	 ob->QueryProp(P_FOOD), ob->QueryProp(P_MAX_FOOD),
-	 ob->QueryProp(P_DRINK), ob->QueryProp(P_MAX_DRINK),
-	 ob->QueryProp(P_ALCOHOL), ob->QueryProp(P_MAX_ALCOHOL)) ;
-  switch(ob->QueryProp(P_GENDER))  {
+	 ({int})ob->QueryProp(P_FOOD), ({int})ob->QueryProp(P_MAX_FOOD),
+	 ({int})ob->QueryProp(P_DRINK), ({int})ob->QueryProp(P_MAX_DRINK),
+	 ({int})ob->QueryProp(P_ALCOHOL), ({int})ob->QueryProp(P_MAX_ALCOHOL)) ;
+  switch(({int})ob->QueryProp(P_GENDER))  {
     case FEMALE : tmp2 = "weiblich " ; break ;
     case MALE   : tmp2 = "maennlich" ; break ;
     default     : tmp2 = "boingisch" ; break ;
   }
   printf("   Geschlecht : %s       Charakter : %-5d             Stufe : %-3d\n",
-	 tmp2, ob->QueryProp(P_ALIGN), ob->QueryProp(P_LEVEL)) ;
-  stats = ob->QueryProp(P_ATTRIBUTES) ;
+	 tmp2, ({int})ob->QueryProp(P_ALIGN), ({int})ob->QueryProp(P_LEVEL)) ;
+  stats = ({mapping})ob->QueryProp(P_ATTRIBUTES) ;
 	if (!mappingp(stats)) stats=([]);
   tmp  = m_indices(stats); tmp2 = m_values(stats); stat_str = "" ;
   for(; sizeof(tmp); tmp=tmp[1..],tmp2=tmp2[1..])
@@ -1576,20 +1576,20 @@
   else
     stat_str = stat_str[0..<2];
   
-  printf("         Geld : %-9d           Stati : %s\n\n", ob->QueryMoney(),
+  printf("         Geld : %-9d           Stati : %s\n\n", ({int})ob->QueryMoney(),
 	 stat_str) ;
   
   weapon = "Keine" ; armour = "" ;
   for(tmp=all_inventory(ob); sizeof(tmp); tmp=tmp[1..])
   {
-    if(tmp[ 0 ]->QueryProp(P_WIELDED)) // gezueckte Waffe
+    if(({object})tmp[ 0 ]->QueryProp(P_WIELDED)) // gezueckte Waffe
       weapon = (tmp[ 0 ]->name(WER)) + " (" +
          old_explode(object_name(tmp[ 0 ]),"#")[0] + ")[" +
-         tmp[ 0 ]->QueryProp(P_WC) + "]" ;
+         ({int})tmp[ 0 ]->QueryProp(P_WC) + "]" ;
 
-    if(tmp[ 0 ]->QueryProp(P_WORN))   // getragene Ruestung
-      armour += (tmp[ 0 ]->name(WER)) + "[" +
-          tmp[ 0 ]->QueryProp(P_AC) + "]" +
+    if(({object})tmp[ 0 ]->QueryProp(P_WORN))   // getragene Ruestung
+      armour += (({string})tmp[ 0 ]->name(WER)) + "[" +
+          ({int})tmp[ 0 ]->QueryProp(P_AC) + "]" +
     ", " ;
   }
 
@@ -1606,17 +1606,17 @@
   }
   
   printf("   Waffe(%3d) : %s\nRuestung(%3d) : %s\n",
-	 ob->QueryProp(P_TOTAL_WC), weapon,
-	 ob->QueryProp(P_TOTAL_AC), armour) ;
+	 ({int})ob->QueryProp(P_TOTAL_WC), weapon,
+	 ({int})ob->QueryProp(P_TOTAL_AC), armour) ;
   
-  list = ob->QueryEnemies();
+  list = ({mixed})ob->QueryEnemies();
   if (pointerp(list)) 
   {
     list=list[0];
     tmp2 = "" ;
     for(i=sizeof(list)-1 ; i>=0;i--)
       if (objectp(list[i]))
-        tmp2 += (list[ i ]->name(WER) + ", ") ;
+        tmp2 += (({string})list[ i ]->name(WER) + ", ") ;
     if(tmp2 != "")
       printf("       Feinde : %s.\n", tmp2[0..<3]);
   }
@@ -1625,11 +1625,11 @@
   if(pl)
   {
     printf( break_string( 
-              CountUp(m_indices(ob->QueryProp(P_QUESTS))), 
+              CountUp(m_indices(({mapping})ob->QueryProp(P_QUESTS))), 
               75,
               "     Aufgaben : ",
               BS_INDENT_ONCE));
-    if(((tmp2 = ob->QueryProp(P_MAILADDR)) != "none") && tmp2 &&
+    if(((tmp2 = ({string})ob->QueryProp(P_MAILADDR)) != "none") && tmp2 &&
        (tmp2 != ""))
       tmp2 = " (" + tmp2 + ")" ;
     else
@@ -1655,22 +1655,22 @@
   if (err) return arg;
   if (query_once_interactive(ob))
     printf("Spieler: %s, Level: %d, Wizlevel: %d\n",
-	   capitalize(getuid(ob)), ob->QueryProp(P_LEVEL),
+	   capitalize(getuid(ob)), ({int})ob->QueryProp(P_LEVEL),
 	   query_wiz_level(ob));
   else
     printf("Monster, UID: %s, EUID: %s, Level: %d\n",
-	   getuid(ob), (geteuid(ob)?geteuid(ob):"0"), ob->QueryProp(P_LEVEL));
-  tmp=ob->short();
+	   getuid(ob), (geteuid(ob)?geteuid(ob):"0"), ({int})ob->QueryProp(P_LEVEL));
+  tmp=({string})ob->short();
   if (!stringp(tmp)||!sizeof(tmp))
-    tmp=sprintf("(%s %s %s %s)",ob->QueryProp(P_PRESAY)+"",
-		ob->QueryProp(P_NAME)+"",ob->QueryProp(P_TITLE)+"",
+    tmp=sprintf("(%s %s %s %s)",({string})ob->QueryProp(P_PRESAY)+"",
+		({string})ob->QueryProp(P_NAME)+"",({string})ob->QueryProp(P_TITLE)+"",
 		(interactive(ob)?"":"(netztot"));
   else
     tmp=tmp[0..<3];
-  printf("%s, Rasse: %s\n",tmp, ""+ob->QueryProp(P_RACE));
+  printf("%s, Rasse: %s\n",tmp, ""+({string})ob->QueryProp(P_RACE));
   printf("Stats:    ");
-  tmp=ob->QueryProp(P_ATTRIBUTES);
-  tmp3=ob->QueryProp(P_ATTRIBUTES_OFFSETS);
+  tmp=({mapping})ob->QueryProp(P_ATTRIBUTES);
+  tmp3=({mapping})ob->QueryProp(P_ATTRIBUTES_OFFSETS);
   if (!tmp)
     printf("keine\n");
   else
@@ -1685,9 +1685,9 @@
     printf("\n");
   }
   printf("Ruestung: %-6d    Waffen: %-6d      Vorsicht: %-6d   Geschlecht: ",
-	 ob->QueryProp(P_TOTAL_AC),ob->QueryProp(P_TOTAL_WC),
-	 ob->QueryProp(P_WIMPY));
-  if (!(tmp=ob->QueryProp(P_GENDER)))
+	 ({int})ob->QueryProp(P_TOTAL_AC),({int})ob->QueryProp(P_TOTAL_WC),
+	 ({int})ob->QueryProp(P_WIMPY));
+  if (!(tmp=({int})ob->QueryProp(P_GENDER)))
     printf("N\n");
   else
   {
@@ -1696,29 +1696,29 @@
     else
       printf("M\n");
   }
-  if (tmp=ob->QueryProp(P_MARRIED))
+  if (tmp=({string})ob->QueryProp(P_MARRIED))
     printf("Verheiratet mit %s.\n",capitalize(tmp));
   printf("Lebenspunkte: %4d [%4d], Magiepunkte: %4d [%4d], Erf: %-8d\n",
-	 ob->QueryProp(P_HP), ob->QueryProp(P_MAX_HP), 
-	 ob->QueryProp(P_SP), ob->QueryProp(P_MAX_SP),
-	 ob->QueryProp(P_XP));
+	 ({int})ob->QueryProp(P_HP), ({int})ob->QueryProp(P_MAX_HP), 
+	 ({int})ob->QueryProp(P_SP), ({int})ob->QueryProp(P_MAX_SP),
+	 ({int})ob->QueryProp(P_XP));
   if (living(ob))
   {
     tmp=present("geld",ob);
     if (tmp)
-      tmp=tmp->QueryProp(P_AMOUNT);
+      tmp=({int})tmp->QueryProp(P_AMOUNT);
     printf("Traegt %6d (%6d) g. Eigengewicht %6d g. %6d Muenzen.\n",
-	   ob->query_weight_contents(),ob->QueryProp(P_MAX_WEIGHT),
-	   ob->QueryProp(P_WEIGHT),tmp);
-    if (tmp=ob->SelectEnemy())
-      printf("Kaempft gegen %s [%O]\n",tmp->name(WEN),tmp);
+	   ({int})ob->query_weight_contents(),({int})ob->QueryProp(P_MAX_WEIGHT),
+	   ({int})ob->QueryProp(P_WEIGHT),tmp);
+    if (tmp=({object})ob->SelectEnemy())
+      printf("Kaempft gegen %s [%O]\n",({string})tmp->name(WEN),tmp);
   }
   printf("ENV: %s",
 	 ((tmp=environment(ob))?object_name(tmp):"- fabric of space -"));
   if(query_once_interactive(ob))
   {
-    printf(", EMail: %s\n", ob->QueryProp(P_MAILADDR)+"");
-    tmp="/secure/master"->find_userinfo(getuid(ob));
+    printf(", EMail: %s\n", ({string})ob->QueryProp(P_MAILADDR)+"");
+    tmp=({int})"/secure/master"->find_userinfo(getuid(ob));
     if (pointerp(tmp) && sizeof(tmp)>USER_DOMAIN)
     {
       tmp=tmp[USER_DOMAIN];
@@ -1730,7 +1730,7 @@
 	printf(".\n");
       }
     }
-    tmp="/secure/master"->get_domain_homes(getuid(ob));
+    tmp=({string*})"/secure/master"->get_domain_homes(getuid(ob));
     if (pointerp(tmp)&&sizeof(tmp)>0)
     {
       printf("Mitglied in: ");
@@ -1739,7 +1739,7 @@
       printf(".\n");
     }
     printf("Quests: ");
-    tmp=ob->QueryProp(P_QUESTS);
+    tmp=({mapping})ob->QueryProp(P_QUESTS);
     if (tmp==({})||!pointerp(tmp))
       printf("Keine.\n");
     else
@@ -1752,8 +1752,8 @@
       tmp=tmp[8..];
       printf("%s",tmp);
     }
-    printf("PKills: %d ",ob->QueryProp(P_KILLS));
-    printf(", QuestPoints: %d (%d/%d), Alter: %s\n",ob->QueryProp(P_QP),ob->QueryProp(P_NEEDED_QP),QM->QueryMaxQP(),timef(2*ob->QueryProp(P_AGE)));
+    printf("PKills: %d ",({int})ob->QueryProp(P_KILLS));
+    printf(", QuestPoints: %d (%d/%d), Alter: %s\n",({int})ob->QueryProp(P_QP),({int})ob->QueryProp(P_NEEDED_QP),({int})QM->QueryMaxQP(),timef(2*({int})ob->QueryProp(P_AGE)));
     if (interactive(ob))
     {
       printf("From: %s (%s) [%s]\n",query_ip_name(ob),query_ip_number(ob),country(query_ip_name(ob)));
@@ -1761,9 +1761,9 @@
       printf("Idle seit %d Sekunden",tmp);
       if (tmp>60)
   	printf(" (%s)",timef(tmp));
-			printf(", cmd avg: %d",ob->QueryProp("command_average"));
+			printf(", cmd avg: %d",({int})ob->QueryProp("command_average"));
       printf(", noch %d ZT zu finden.\nGesnooped von: %s\n",
-	     ((tmp=ob->QueryProp(P_POTIONROOMS))?sizeof(tmp):0),
+	     ((tmp=({int*})ob->QueryProp(P_POTIONROOMS))?sizeof(tmp):0),
 	     ((tmp=query_snoop(ob))?capitalize(getuid(tmp)):"Niemandem"));
     }
     else
@@ -1772,7 +1772,7 @@
       tmp=file_time("save/"+tmp[0..0]+"/"+tmp+".o");
       tmp=time()-tmp;
       printf("Kam von: %s, vor: %d s(%s)\n",
-	     ob->QueryProp(P_CALLED_FROM_IP),tmp,timef(tmp));  
+	     ({string})ob->QueryProp(P_CALLED_FROM_IP),tmp,timef(tmp));  
     }
   }
   else
@@ -1864,7 +1864,7 @@
     err=desc(ob)+" is not an interactive player";
     return arg;
   }
-  if ((err="/secure/master"->renew_player_object(ob))<0)
+  if ((err=({int})"/secure/master"->renew_player_object(ob))<0)
     err="error "+err+" when renewing "+desc(ob);
   return arg;
 }
@@ -1883,10 +1883,10 @@
     return arg;
   }
   new=clone_object(old_explode(object_name(ob),"#")[0]);
-  props=ob->QueryProperties();
-  new->SetProperties(ob->QueryProperties());
+  props=({mapping})ob->QueryProperties();
+  ({mapping})new->SetProperties(ob->QueryProperties());
   push(new);
-  new->move(this_player(),M_NOCHECK);
+  ({int})new->move(this_player(),M_NOCHECK);
   return arg;
 }
 
diff --git a/secure/awmaster.c b/secure/awmaster.c
index f1ce7d4..d9f0bbc 100644
--- a/secure/awmaster.c
+++ b/secure/awmaster.c
@@ -152,16 +152,16 @@
     {
       armours += ([ id : 
         ([
-            AWM_TYPE      : ob->QueryProp(P_ARMOUR_TYPE) ,
-            AWM_CLASS     : ob->QueryProp(P_AC) ,
-            AWM_EFF_CLASS : ob->QueryProp(P_EFFECTIVE_AC) ,
+            AWM_TYPE      : ({string})ob->QueryProp(P_ARMOUR_TYPE) ,
+            AWM_CLASS     : ({int})ob->QueryProp(P_AC) ,
+            AWM_EFF_CLASS : ({int})ob->QueryProp(P_EFFECTIVE_AC) ,
             AWM_FLAGS     : xflags(ob),
-            AWM_WEIGHT    : ob->QueryProp(P_WEIGHT) ,
-            AWM_VALUE     : ob->QueryProp(P_VALUE) ,
-            AWM_HANDS     : ob->QueryProp(P_NR_HANDS) , // Fuer Schilde
-            AWM_D_TYPE    : ob->QueryProp(P_DAM_TYPE) ,
-            AWM_X_CLASS   : ob->QueryProp(P_EFFECTIVE_WC) ||
-                            ob->QueryProp(P_WC),
+            AWM_WEIGHT    : ({int})ob->QueryProp(P_WEIGHT) ,
+            AWM_VALUE     : ({int})ob->QueryProp(P_VALUE) ,
+            AWM_HANDS     : ({int})ob->QueryProp(P_NR_HANDS) , // Fuer Schilde
+            AWM_D_TYPE    : ({string*})ob->QueryProp(P_DAM_TYPE) ,
+            AWM_X_CLASS   : ({int})ob->QueryProp(P_EFFECTIVE_WC) ||
+                            ({int})ob->QueryProp(P_WC),
             AWM_TIME      : time()
         ]) ]);
     }
@@ -206,16 +206,16 @@
     {
       weapons += ([ id :
         ([
-            AWM_TYPE      : ob->QueryProp(P_WEAPON_TYPE) ,
-            AWM_CLASS     : ob->QueryProp(P_WC) ,
-            AWM_EFF_CLASS : ob->QueryProp(P_EFFECTIVE_WC) ,
+            AWM_TYPE      : ({string})ob->QueryProp(P_WEAPON_TYPE) ,
+            AWM_CLASS     : ({int})ob->QueryProp(P_WC) ,
+            AWM_EFF_CLASS : ({int})ob->QueryProp(P_EFFECTIVE_WC) ,
             AWM_FLAGS     : xflags(ob),
-            AWM_WEIGHT    : ob->QueryProp(P_WEIGHT) ,
-            AWM_VALUE     : ob->QueryProp(P_VALUE) ,
-            AWM_HANDS     : ob->QueryProp(P_NR_HANDS) ,
-            AWM_D_TYPE    : ob->QueryProp(P_DAM_TYPE) ,
-            AWM_X_CLASS   : ob->QueryProp(P_EFFECTIVE_AC) || 
-                            ob->QueryProp(P_AC),
+            AWM_WEIGHT    : ({int})ob->QueryProp(P_WEIGHT) ,
+            AWM_VALUE     : ({int})ob->QueryProp(P_VALUE) ,
+            AWM_HANDS     : ({int})ob->QueryProp(P_NR_HANDS) ,
+            AWM_D_TYPE    : ({string*})ob->QueryProp(P_DAM_TYPE) ,
+            AWM_X_CLASS   : ({int})ob->QueryProp(P_EFFECTIVE_AC) || 
+                            ({int})ob->QueryProp(P_AC),
             AWM_TIME      : time()
         ]) ]);
     }
diff --git a/secure/errord.c b/secure/errord.c
index 884d3c1..a17639b 100644
--- a/secure/errord.c
+++ b/secure/errord.c
@@ -459,7 +459,7 @@
     // nicht gespeichert.
     if (this_interactive() && IS_LEARNER(this_interactive())
         && strstr(issue->loadname,WIZARDDIR)==0
-        && this_interactive()->QueryProp(P_DONT_LOG_ERRORS))
+        && ({int})this_interactive()->QueryProp(P_DONT_LOG_ERRORS))
     {
         return 0;
     }
@@ -624,7 +624,7 @@
     // nicht gespeichert.
     if (this_interactive() && IS_LEARNER(this_interactive())
         && strstr(issue->loadname,WIZARDDIR)==0
-        && this_interactive()->QueryProp(P_DONT_LOG_ERRORS)) {
+        && ({int})this_interactive()->QueryProp(P_DONT_LOG_ERRORS)) {
         return 0;
     }
 
@@ -1435,7 +1435,7 @@
     mail[MSG_BODY]=text;
     mail[MSG_ID]=sprintf(MUDNAME": %d.%d",time(),random(__INT_MAX__));
 
-    if (!sizeof("/secure/mailer"->DeliverMail(mail,0)))
+    if (!sizeof(({string*})"/secure/mailer"->DeliverMail(mail,0)))
       res = -1; // an niemanden erfolgreich zugestellt. :-(
     else
       res = 1;
@@ -1462,7 +1462,7 @@
                                 getuid(TI));
     mail[MSG_BODY] = text;
 
-    if (!sizeof("/secure/mailer"->DeliverMail(mail,0)))
+    if (!sizeof(({string*})"/secure/mailer"->DeliverMail(mail,0)))
       res |= -1;
     else
       res |= 1;
diff --git a/secure/explorationmaster.c b/secure/explorationmaster.c
index 6bcb346..ecc6ee9 100644
--- a/secure/explorationmaster.c
+++ b/secure/explorationmaster.c
@@ -28,7 +28,7 @@
 
 #include <living/comm.h>
 #define ZDEBUG(x) if (find_player("zesstra")) \
-  find_player("zesstra")->ReceiveMsg(x,MT_DEBUG,0,object_name()+":",this_object())
+  ({int})find_player("zesstra")->ReceiveMsg(x,MT_DEBUG,0,object_name()+":",this_object())
 //#define ZDEBUG(x)
 
 // Struktur: ([ string filename : string* action, int number, int type ]) 
@@ -95,8 +95,8 @@
   //ZDEBUG(sprintf("check %s...",pl));
   // Letzte Loginzeit ermitteln, wenn laenger als 90 Tage her und nicht
   // eingeloggt, wird der Spieler uebersprungen.
-  pldata->ReleasePlayer();
-  pldata->LoadPlayer(pl);
+  ({int})pldata->ReleasePlayer();
+  ({int})pldata->LoadPlayer(pl);
   // Testspieler ausnehmen, Spieler, die 90 Tage nicht da waren.
   if ( (({int})pldata->QueryProp(P_LAST_LOGIN) < time() - 7776000
         && !find_player(pl))
@@ -154,7 +154,7 @@
   int avgspieler = extra[5];
 
   if (objectp(pldata))
-    pldata->remove(1);
+    ({int})pldata->remove(1);
 
   if (file_size(BY_EP) >= 0)
     rm(BY_EP);
@@ -524,7 +524,7 @@
       return;
     }
     if (!what || what == "") {
-      this_interactive()->More(DUMPFILE, 1);
+      ({void})this_interactive()->More(DUMPFILE, 1);
       log_file("ARCH/EPZugriffe", ctime(time())+": "+
         capitalize(getuid(this_interactive()))+" schaute sich das DUMPFILE an.\n");
       return;
@@ -538,13 +538,13 @@
       if (!what || what == "")
        what = "/"+getuid(this_interactive())+"/";
       else {
-       if (!master()->domain_master(getuid(this_interactive()), what)) {
+       if (!({int})master()->domain_master(getuid(this_interactive()), what)) {
          write("Sorry, Du kannst nur Objekte in Deiner eigenen Region abfragen!\n");
          return;
        }
        if (!magname || magname=="")
          magname = getuid(this_interactive());
-//        if (!master()->domain_member(magname, what)) {
+//        if (!({int})master()->domain_member(magname, what)) {
 //         write(capitalize(magname)+" ist gar kein Mitarbeiter in Deiner Region!\n");
 //          return;
 //       }
@@ -563,9 +563,9 @@
        what="/"+what+"/";
       }
   if (allowed())
-    this_interactive()->More(getMatchArch(what));
+    ({void})this_interactive()->More(getMatchArch(what));
   else
-    this_interactive()->More(getMatch(what));
+    ({void})this_interactive()->More(getMatch(what));
   log_file("ARCH/EPZugriffe", ctime(time())+": "+
     capitalize(getuid(this_interactive()))+" schaute sich "+what+" an.\n");
   return;
@@ -669,8 +669,8 @@
 
   if (!previous_object() || !this_interactive() || !this_player() ||
        this_player() != this_interactive() ||
-       this_player()->QueryProp(P_KILLS) ||
-       this_player()->QueryGuest()       )
+       ({int})this_player()->QueryProp(P_KILLS) ||
+       ({int})this_player()->QueryGuest()       )
     return 0;
 
   fn = old_explode(object_name(previous_object()), "#")[0];
@@ -681,7 +681,7 @@
   if (member(obs[fn],key) < 0)
     return 0;
 
-  ep = (MASTER->query_ep(getuid(this_interactive())) || "");
+  ep = (({string})MASTER->query_ep(getuid(this_interactive())) || "");
 
   gesetzt=test_bit(ep,obs[fn,1]);
   check_to_fast(getuid(this_player()),fn,gesetzt);
@@ -698,7 +698,7 @@
   string ep;
   int gesetzt;
   
-  if (!objectp(ob) || ob->QueryProp(P_KILLS ))
+  if (!objectp(ob) || ({int})ob->QueryProp(P_KILLS ))
     return 0;
 
   fn = old_explode(object_name(previous_object()), "#")[0];
@@ -709,7 +709,7 @@
   if (member(obs[fn],key) < 0)
     return 0;
 
-  ep = (MASTER->query_ep(getuid(ob)) || "");
+  ep = (({string})MASTER->query_ep(getuid(ob)) || "");
 
   gesetzt=test_bit(ep,obs[fn,1]);
   check_to_fast(getuid(this_player()),fn,gesetzt);
@@ -723,7 +723,7 @@
 
 private int QueryRealExplorationPoints(string pl)
 {
-  return count_bits(MASTER->query_ep(pl) || " ");
+  return count_bits(({string})MASTER->query_ep(pl) || " ");
 }
 
 nomask int QueryExplorationPoints(mixed pl)
@@ -753,7 +753,7 @@
 {
   int i,j,k,t,maxEP;
   string ep;
-  ep = (MASTER->query_ep(pl) || "");
+  ep = (({string})MASTER->query_ep(pl) || "");
 
   maxEP = QueryMaxEP();
   for( i=0; i<num; i++)
@@ -765,7 +765,7 @@
     if( j==maxEP ) break;
     ep = clear_bit(ep, k);
   }
-  MASTER->update_ep(pl,ep);
+  ({int})MASTER->update_ep(pl,ep);
   return i;
 }
 
@@ -794,13 +794,13 @@
   if (!pl) return -2;
   i=remove_fp(num, pl);
   log_file("ARCH/fp_strafen", ctime(time())+": "
-    +this_interactive()->Name(WER)+" loescht "+pl+" "+i
+    +({string})this_interactive()->Name(WER)+" loescht "+pl+" "+i
     +" FPs\nGrund:"+grund+"\n");
   if( i>0 ) {
      text =
      "Hallo "+capitalize(pl)+",\n\n"+
      break_string(
-      this_interactive()->Name(WER)+" hat soeben veranlasst, dass Dir "+i
+      ({string})this_interactive()->Name(WER)+" hat soeben veranlasst, dass Dir "+i
       +" FPs abgezogen wurden.\nGrund:"+grund+"\n", 78 );
 
      mail = allocate(9);
@@ -814,7 +814,7 @@
      mail[MSG_ID]=MUDNAME":"+time();
      mail[MSG_BODY]=text;
 
-     "/secure/mailer"->DeliverMail(mail,1);
+     ({string*})"/secure/mailer"->DeliverMail(mail,1);
   }
   return i;
 }
@@ -824,7 +824,7 @@
 {
   int i,j,k,t,maxEP;
   string ep;
-  ep = (MASTER->query_ep(pl) || "");
+  ep = (({string})MASTER->query_ep(pl) || "");
 
   maxEP = QueryMaxEP();
   for( i=0; i<num; i++)
@@ -836,7 +836,7 @@
     if( j==maxEP ) break;
     ep = set_bit(ep, k);
   }
-  MASTER->update_ep(pl,ep);
+  ({int})MASTER->update_ep(pl,ep);
   return i;
 }
 
@@ -848,7 +848,7 @@
   if (!pl) return -2;
   i=add_fp(num, pl);
   log_file("ARCH/fp_strafen", ctime(time())+": "
-    +this_interactive()->Name(WER)+" gibt "+pl+" "+i
+    +({string})this_interactive()->Name(WER)+" gibt "+pl+" "+i
     +" FPs\n");
 
   return i;
@@ -861,12 +861,12 @@
   if (!allowed()) return -1;
   if ( num<0 ) return -3;
   if (!pl) return -2;
-  ep = (MASTER->query_ep(pl) || "");
+  ep = (({string})MASTER->query_ep(pl) || "");
 
   maxEP = QueryMaxEP();
   if (num<0 || num>=maxEP) return -4;
   ep = set_bit(ep, num);
-  MASTER->update_ep(pl,ep);
+  ({int})MASTER->update_ep(pl,ep);
   return num;
 }
 
@@ -877,12 +877,12 @@
   if (!allowed()) return -1;
   if ( num<0 ) return -3;
   if (!pl) return -2;
-  ep = (MASTER->query_ep(pl) || "");
+  ep = (({string})MASTER->query_ep(pl) || "");
 
   maxEP = QueryMaxEP();
   if (num<0 || num>=maxEP) return -4;
   ep = clear_bit(ep, num);
-  MASTER->update_ep(pl,ep);
+  ({int})MASTER->update_ep(pl,ep);
   return num;
 }
 
@@ -896,7 +896,7 @@
 {
   string ep,teststring;
   if (!allowed()) return -1;
-  ep = (MASTER->query_ep(pl) || "");
+  ep = (({string})MASTER->query_ep(pl) || "");
 
   output="";
   if (!pattern || pattern=="")
@@ -908,7 +908,7 @@
         if ( test_bit(ep, v2) && sscanf(fn, teststring, unused, unused) )
           printep(v2, fn, v3, v1);
       });
-  this_interactive()->More(output);
+  ({void})this_interactive()->More(output);
   return 1;
 }
 
diff --git a/secure/gildenmaster.c b/secure/gildenmaster.c
index dfd411d..6018d9f 100644
--- a/secure/gildenmaster.c
+++ b/secure/gildenmaster.c
@@ -57,9 +57,9 @@
               "Bitte verstaendige einen Erzmagier.\n");
       return -2;
   }
-  pl->SetProp(P_GUILD,gname);
+  ({string})pl->SetProp(P_GUILD,gname);
   // Event Gildenwechsel triggern
-  EVENTD->TriggerEvent(EVT_GUILD_CHANGE, ([
+  ({int})EVENTD->TriggerEvent(EVT_GUILD_CHANGE, ([
       E_OBJECT: pl, E_PLNAME: getuid(pl),
       E_ENVIRONMENT: environment(pl),
       E_GUILDNAME: gname,
@@ -94,7 +94,7 @@
       write("Du kannst hier nicht aus einer anderen Gilde austreten.\n");
       return -1;
   }
-  if (gname[8..]==(pl->QueryProp(P_DEFAULT_GUILD)||DEFAULT_GUILD))
+  if (gname[8..]==(({string})pl->QueryProp(P_DEFAULT_GUILD)||DEFAULT_GUILD))
   {
         write("Aus dieser Gilde kannst Du nicht austreten.\n");
         return -1;
@@ -102,18 +102,18 @@
   if (loss<=0) loss=20;
   skills=({mapping})pl->QueryProp(P_NEWSKILLS);
   walk_mapping(skills,"loose_ability",this_object(),loss);
-  pl->SetProp(P_NEWSKILLS,skills);
-  pl->SetProp(P_GUILD,0);
+  ({mapping})pl->SetProp(P_NEWSKILLS,skills);
+  ({string})pl->SetProp(P_GUILD,0);
   // Event Gildenwechsel triggern
-  EVENTD->TriggerEvent(EVT_GUILD_CHANGE, ([
+  ({int})EVENTD->TriggerEvent(EVT_GUILD_CHANGE, ([
       E_OBJECT: pl, E_PLNAME: getuid(pl),
       E_ENVIRONMENT: environment(pl),
-      E_GUILDNAME: pl->QueryProp(P_GUILD),
+      E_GUILDNAME: ({string})pl->QueryProp(P_GUILD),
       E_LAST_GUILDNAME: gname ]) );
 
   // Defaultgilde ggf. neuen Titel setzen lassen.
   gname = ({string})pl->QueryProp(P_GUILD);
-  (GUILD_DIR+"/"+gname)->adjust_title(pl);
+  ({void})(GUILD_DIR+"/"+gname)->adjust_title(pl);
 
   return 1;
 }
diff --git a/secure/lepmaster.c b/secure/lepmaster.c
index 6e53834..592b624 100644
--- a/secure/lepmaster.c
+++ b/secure/lepmaster.c
@@ -305,8 +305,8 @@
   DEBUG("Es geht um: %O\n", player);
 
   // Abenteuerpunkte
-  DEBUG("Abenteuerpunkte: %d ("+REQ_QP+")\n", player->QueryProp(P_QP));
-  if (player->QueryProp(P_QP) < REQ_QP) {
+  DEBUG("Abenteuerpunkte: %d ("+REQ_QP+")\n", ({int})player->QueryProp(P_QP));
+  if (({int})player->QueryProp(P_QP) < REQ_QP) {
     s += sprintf(" * Dir fehlen noch mindestens %d Abenteuerpunkte.\n", 
 		 REQ_QP - ({int})player->QueryProp(P_QP));
     i--;
@@ -345,7 +345,7 @@
   int minlevel = QueryLevel(REQ_LEP);
 
   // Restliche Stufenpunkte 
-  DEBUG("Stufenpunkte: %d ("+REQ_LEP+")\n", player->QueryProp(P_LEP));
+  DEBUG("Stufenpunkte: %d ("+REQ_LEP+")\n", ({int})player->QueryProp(P_LEP));
   if (({int})(player->QueryProp(P_LEP)) < REQ_LEP) {
     s += sprintf(" * Du musst mindestens %d Stufenpunkte, entspricht Stufe %d, "
         "erreichen.\n", REQ_LEP, minlevel);
@@ -353,7 +353,7 @@
   }
   
   // Demnach mindestens REQ/100-Level 
-  DEBUG("Level: %d ("+REQ_LEP/100+")\n", player->QueryProp(P_LEVEL));
+  DEBUG("Level: %d ("+REQ_LEP/100+")\n", ({int})player->QueryProp(P_LEVEL));
   if (({int})player->QueryProp(P_LEVEL) < minlevel) {
     s += sprintf(" * Du musst mindestens Stufe %d erreichen.\n", minlevel);
     i--;
diff --git a/secure/login.c b/secure/login.c
index ab6ee16..3652e21 100644
--- a/secure/login.c
+++ b/secure/login.c
@@ -192,9 +192,9 @@
     // machen das natuerlich nicht fuer die IP vom Mudrechner...
     if (query_ip_number(this_object()) != "87.79.24.60")
     {
-      "/p/daemon/dnslookup"->check_tor(query_ip_number(this_object()),
+      ({int})"/p/daemon/dnslookup"->check_tor(query_ip_number(this_object()),
           query_mud_port());
-      "/p/daemon/dnslookup"->check_dnsbl(query_ip_number(this_object()));
+      ({int})"/p/daemon/dnslookup"->check_dnsbl(query_ip_number(this_object()));
     }
 
     // ggf. muss TLS (initiiert durch STARTTLS) noch ausverhandelt werden.
@@ -232,7 +232,7 @@
     ip = query_ip_number(this_object());
     u = filter(users(), function status (object ob, string addr, int a) {
         return query_ip_number(ob) == addr
-               && ob->QueryProp(P_AGE) < a;
+               && ({int})ob->QueryProp(P_AGE) < a;
     }, ip, 12*60*60); // 24h in heart_beats
 
     if ( sizeof(u) > 25 ){
@@ -266,8 +266,8 @@
       // check connection from Tor exit node
       string eff_ip = (sizeof(realip) ? realip
                                       : query_ip_number(this_object()));
-      if ("/p/daemon/dnslookup"->check_tor(eff_ip, query_mud_port())
-          || "/p/daemon/dnslookup"->check_dnsbl(eff_ip))
+      if (({int})"/p/daemon/dnslookup"->check_tor(eff_ip, query_mud_port())
+          || ({int})"/p/daemon/dnslookup"->check_dnsbl(eff_ip))
         res = 
             "\nSorry, von Deiner Adresse kamen ein paar Idioten, die "
             "ausschliesslich\nAerger machen wollten. Deshalb haben wir "
@@ -346,8 +346,8 @@
         realip=str[sizeof(SSL_GRRETING)..];
       } // andere IPs werden einfach ignoriert. -> log/PROXY.REQ ?
       // ggf. Lookup fuer Torexits anstossen.
-      "/p/daemon/dnslookup"->check_tor(realip,query_mud_port());
-      "/p/daemon/dnslookup"->check_dnsbl(realip);
+      ({int})"/p/daemon/dnslookup"->check_tor(realip,query_mud_port());
+      ({int})"/p/daemon/dnslookup"->check_dnsbl(realip);
 
       input_to( "logon2", INPUT_PROMPT,
           "Wie heisst Du denn (\"neu\" fuer neuen Spieler)? ");
@@ -391,7 +391,7 @@
     loginname = str;
 
     /* read the secure save file to see if character already exists */
-    string ssavef=master()->secure_savefile(loginname);
+    string ssavef=({string})master()->secure_savefile(loginname);
     if ( loginname != "gast"
          && (!ssavef || !sizeof(ssavef) || !restore_object(ssavef) ))
     {
@@ -529,7 +529,7 @@
 
     password = str;
 
-    if ( !master()->good_password( str, loginname ) ) {
+    if ( !({int})master()->good_password( str, loginname ) ) {
         input_to( "new_password", INPUT_NOECHO|INPUT_PROMPT,
             "Bitte gib ein Passwort an: ");
         return 1;
@@ -736,7 +736,7 @@
             return;
         }
 
-        write( call_other( races[num - 1][0], "QueryProp", P_RACE_DESCRIPTION ));
+        write( ({string})call_other( races[num - 1][0], "QueryProp", P_RACE_DESCRIPTION ));
         input_to( "get_race_answer", INPUT_PROMPT,
             "\nWas willst Du tun: ");
         return;
@@ -1057,7 +1057,7 @@
     seteuid(ROOTID);
 
     /* read the secure save file to see if character already exists */
-    if ( !restore_object( master()->secure_savefile(loginname) ) ){
+    if ( !restore_object( ({string})master()->secure_savefile(loginname) ) ){
         write( "Kein solcher Spieler!\n" );
         destruct( this_object() );
         return 0;
diff --git a/secure/mailer.c b/secure/mailer.c
index ecfb649..bc22db9 100644
--- a/secure/mailer.c
+++ b/secure/mailer.c
@@ -357,7 +357,7 @@
             sender = regreplace( sender, "@", "%", 1 );
             // Zustellung via Intermud-Mail an andere Muds.
             if ( member( mud, '.' ) == -1 ) {
-                "/secure/udp_mail"->deliver_mail( rec, mud, sender,
+                ({void})"/secure/udp_mail"->deliver_mail( rec, mud, sender,
                                                   msg[MSG_SUBJECT],
                                                   msg[MSG_BODY] );
                 recok += ({ recipients[i] });
@@ -392,7 +392,7 @@
 
         }
         else
-            if (master()->find_userinfo(recipients[i]) )
+            if (({int})master()->find_userinfo(recipients[i]) )
             {
                 save_msg( newmsg, recipients[i] );
                 recok += ({ recipients[i] });
@@ -603,13 +603,13 @@
 public int query_recipient_ok( string name )
 {
 #if INTERNET_MAIL_ENABLED
-    return  (master()->find_userinfo(name)
+    return  (({int})master()->find_userinfo(name)
              || member( name, '%' ) > 0 || member( name, '@' ) > 0 );
 #else
     // es darf zwar ein @ in der Adresse vorkommen, dahinter aber kein . mehr
     // (dann ist es ne Mail via Intermud-Mail, nicht ins Internet).
     string *tmp;
-    return  (master()->find_userinfo(name)
+    return  (({int})master()->find_userinfo(name)
              || member( name, '%' ) > 0
              || (sizeof(tmp=explode(name,"@")) == 2 && strstr(tmp[1],".") == -1));
 #endif
diff --git a/secure/master.c b/secure/master.c
index bdbf779..b853771 100644
--- a/secure/master.c
+++ b/secure/master.c
@@ -300,7 +300,7 @@
 
   ++loading_simul_efuns;
 
-  if (!(err=catch(SIMUL_EFUN_FILE->start_simul_efun())) ) {
+  if (!(err=catch(({void})SIMUL_EFUN_FILE->start_simul_efun())) ) {
     --loading_simul_efuns;
     return ({SIMUL_EFUN_FILE});
   }
@@ -308,7 +308,7 @@
   debug_message("Failed to load simul efun " + SIMUL_EFUN_FILE +
       " " + err, DMSG_STDOUT | DMSG_LOGFILE | DMSG_STAMP);
 
-  if (!(err=catch(SPARE_SIMUL_EFUN_FILE->start_simul_efun())) ) {
+  if (!(err=catch(({void})SPARE_SIMUL_EFUN_FILE->start_simul_efun())) ) {
     --loading_simul_efuns;
     return ({SPARE_SIMUL_EFUN_FILE});
   }
@@ -593,7 +593,7 @@
 
 // Was machen bei disconnect?
 protected void disconnect(object who, string remaining) {
-    who->NetDead(); return;
+    ({void})who->NetDead(); return;
 }
 
 // Es gibt kein File 'filename'. VC aktivieren so vorhanden ...
@@ -640,8 +640,8 @@
 // Spieler bei Shutdown entfernen
 protected void remove_player(object victim)
 {
-  catch(victim->quit());
-  if (victim) catch(victim->remove());
+  catch(({int})victim->quit());
+  if (victim) catch(({int})victim->remove());
   if (victim) destruct(victim);
   return;
 }
@@ -652,7 +652,7 @@
   //sollte nur vom GD gerufen werden. Oder allenfalls Master selbst
   filter(users(),#'tell_object,
   "Der Gamedriver ruft: Der Speicher wird knapp ! Bereitet euch auf das Ende vor !\n");
-  "/obj/shut"->shut(minutes);
+  ({int})"/obj/shut"->shut(minutes);
   return;
 }
 
@@ -885,7 +885,7 @@
   if (efun::object_info(culprit, OI_ONCE_INTERACTIVE))
     call_out("restart_heart_beat", 5, culprit);
   else
-    catch(culprit->make_immortal(); publish);
+    catch(({void})culprit->make_immortal(); publish);
   return 0;
 }
 
@@ -1006,7 +1006,7 @@
   // nicht waehrend des ladens der simulefuns auftrat, bei der Ausgabe der
   // Meldung ueber die Kaenaele wieder sefuns genutzt werden.
   if (!loading_simul_efuns) {
-    if (titp && (IS_LEARNER(titp) || (titp->QueryProp(P_TESTPLAYER))))
+    if (titp && (IS_LEARNER(titp) || (({int|string})titp->QueryProp(P_TESTPLAYER))))
     {
       catch(send_channel_msg("Entwicklung",
                              capitalize(objectp(po) ? REAL_UID(po) : ""),
diff --git a/secure/master.h b/secure/master.h
index e0b8ea7..b9988b7 100644
--- a/secure/master.h
+++ b/secure/master.h
@@ -90,6 +90,7 @@
 string         _get_path(string path, string user);
 string         QueryBanished(string str);
 int            TBanishName(string name, int days);
+varargs void   BanishName(string name, string reason, int force);
 
 // sendet bei Befoerderungen Infomail an Magier
 protected void SendWizardHelpMail(string name, int level);
diff --git a/secure/master/destruct.c b/secure/master/destruct.c
index 1b7c19a..bd36571 100644
--- a/secure/master/destruct.c
+++ b/secure/master/destruct.c
@@ -28,10 +28,10 @@
           && ob) {
             // Spieler speichern, dann erst Inventar entleeren, dann remove() und
         // und destruct() anwenden.
-        catch(ob->save_me(1); publish);
+        catch(({void})ob->save_me(1); publish);
         filter(all_inventory(ob), #'recursive_remove, immediate_destruct);
         if (!immediate_destruct) 
-          catch(ob->remove(0);publish);
+          catch(({int})ob->remove(0);publish);
         if (ob) 
           destruct(ob);
     }
@@ -43,7 +43,7 @@
     filter(all_inventory(ob), #'recursive_remove, immediate_destruct);
     // ggf. zuerst remove versuchen
     if (!immediate_destruct)
-      catch(ob->remove(1);publish);
+      catch(({int})ob->remove(1);publish);
     if (ob)
       destruct(ob);
   }
@@ -82,7 +82,7 @@
       old_env=environment(item);
       // M_MOVE_ALL, falls item nen Unitobjekt ist. Sonst clonen die u.U. noch
       // wieder nen neues Objekt im alten Env.
-      if(catch(item->move(env, M_NOCHECK|M_MOVE_ALL);publish))
+      if(catch(({int})item->move(env, M_NOCHECK|M_MOVE_ALL);publish))
         recursive_remove(item, 1);
       else if (item && environment(item) == old_env)
         recursive_remove(item, 1);
diff --git a/secure/master/domain.c b/secure/master/domain.c
index ade06ba..b73378d 100644
--- a/secure/master/domain.c
+++ b/secure/master/domain.c
@@ -25,8 +25,8 @@
 {
   string *domains;
   
-  if ((call_other(SIMUL_EFUN_FILE, "process_call") ||
-        call_other(SIMUL_EFUN_FILE, "secure_level") < GOD_LVL) ||
+  if ((({int})call_other(SIMUL_EFUN_FILE, "process_call") ||
+        ({int})call_other(SIMUL_EFUN_FILE, "secure_level") < GOD_LVL) ||
         !find_userinfo(user))
     return 0;
   domains=query_userlist(user, USER_DOMAIN);
diff --git a/secure/master/guild.c b/secure/master/guild.c
index d0c025c..e863409 100644
--- a/secure/master/guild.c
+++ b/secure/master/guild.c
@@ -26,8 +26,8 @@
 {
   string *guilds;
   
-  if ((call_other(SIMUL_EFUN_FILE, "process_call") ||
-       call_other(SIMUL_EFUN_FILE, "secure_level") < GOD_LVL) ||
+  if ((({int})call_other(SIMUL_EFUN_FILE, "process_call") ||
+       ({int})call_other(SIMUL_EFUN_FILE, "secure_level") < GOD_LVL) ||
       !find_userinfo(user))
     return 0;
 
diff --git a/secure/master/misc.c b/secure/master/misc.c
index 7d41566..d952d6e 100644
--- a/secure/master/misc.c
+++ b/secure/master/misc.c
@@ -35,12 +35,12 @@
     {
       // sonst faken wir eins. *seufz*
       sender=clone_object("/p/daemon/namefake");
-      sender->SetProp(P_NAME, sendername); 
-      sender->SetProp(P_ARTICLE,0);
+      ({string})sender->SetProp(P_NAME, sendername); 
+      ({int})sender->SetProp(P_ARTICLE,0);
       // Dieses Objekt zerstoert sich nach 3s automatisch.
     }
   }
-  CHMASTER->send(channel, sender, msg);
+  ({int})CHMASTER->send(channel, sender, msg);
 }
 
 static string *explode_files(string file) {
@@ -180,7 +180,7 @@
       return;
   }
 
-/*  if (!("/secure/login"->valid_name(name))) return;*/
+/*  if (!(({int})"/secure/login"->valid_name(name))) return;*/
   if ( lower_case(reason) != "loeschen" ){
       names = ({ name + " " + reason });
 
@@ -416,8 +416,8 @@
     // Lese- und Schreibberechtigungen fuer die Rubrik 'polizei' setzen
     ob = load_object("secure/news");
     ginfo = (({mixed*})ob->GetGroup("polizei"))[5..6];
-    ob->RemoveAllowed( "polizei", 0, ginfo[0], ginfo[1] );
-    ob->AddAllowed( "polizei", 0, deputies, deputies );
+    ({int})ob->RemoveAllowed( "polizei", 0, ginfo[0], ginfo[1] );
+    ({int})ob->AddAllowed( "polizei", 0, deputies, deputies );
     LoadDeputyFileList();
 }
 
@@ -471,7 +471,7 @@
     {
       tell_object(player, "Arbeitszimmer " + castle + " erzeugt.\n");
       // Arbeitszimmer als Home setzen
-      player->SetProp(P_START_HOME,castle[0..<3]);
+      ({string})player->SetProp(P_START_HOME,castle[0..<3]);
     }
     else
       tell_object(player, "Arbeitszimmer konnte nicht erzeugt werden !\n");
@@ -497,7 +497,7 @@
   mixed mail = ({"Merlin", "<Master>", name, 0, 0, subject,
                  call_sefun("dtime",time()),
                  MUDNAME+time(), text });
-  MAILDEMON->DeliverMail(mail, 0);
+  ({string*})MAILDEMON->DeliverMail(mail, 0);
 }
 
 int allowed_advance_wizlevel(mixed ob)
@@ -558,13 +558,12 @@
 
 void restart_heart_beat(object heart_beat)
 {
-  if (heart_beat) heart_beat->_restart_beat();
+  if (heart_beat) ({void})heart_beat->_restart_beat();
 }
 
 int renew_player_object(string|object who)
 {
   object newob;
-  object *obs, *obs2;
   mixed err;
   string ob_name;
   object *armours, weapon;
@@ -585,7 +584,7 @@
     return -2;
   if (!object_info(who, OI_ONCE_INTERACTIVE))
     return -3;
-  if (who->QueryGuest())
+  if (({int})who->QueryGuest())
   {
     printf("Can't renew guests!\n");
     return -6;
@@ -604,11 +603,11 @@
   if (!newob)
     return -5;
   /* Ok, the object is here now ... lets go for it ... */
-  who->save_me(0);
+  ({void})who->save_me(0);
   /* SSL ip weiterreichen */
   if( call_sefun("query_ip_number", who) != efun::interactive_info(who,II_IP_NUMBER) )
   {
-    newob->set_realip( call_sefun("query_ip_number",who) );
+    ({string})newob->set_realip( call_sefun("query_ip_number",who) );
   }
   efun::configure_object(who, OC_COMMANDS_ENABLED, 0);
   efun::set_this_player(0);
@@ -634,7 +633,7 @@
     {
       send_channel_msg("Debug",previous_object(),
                        "ERROR: exec() during Renew unsuccessful.\n");
-      newob->remove();
+      ({int})newob->remove();
       return 0;
     }
   }
@@ -643,7 +642,7 @@
   {
     send_channel_msg("Debug",previous_object(),
                      "ERROR: still active !\n");
-    newob->remove();
+    ({int})newob->remove();
     return 0;
   }
   // newob->start_player(capitalize(getuid(who)),who->_query_my_ip());
@@ -657,65 +656,64 @@
                                              })
                                       ), who
                       ),
-          capitalize(getuid(who)), who->_query_my_ip() );
+          capitalize(getuid(who)), ({string})who->_query_my_ip() );
 
-  newob->move(environment(who),M_TPORT|M_NOCHECK|M_NO_SHOW|M_SILENT
+  ({int})newob->move(environment(who),M_TPORT|M_NOCHECK|M_NO_SHOW|M_SILENT
               |M_NO_ATTACK);
-  obs=all_inventory(who);
   foreach(object tob: all_inventory(who)) {
-    if (!tob->QueryProp(P_AUTOLOADOBJ))
+    if (!({mixed})tob->QueryProp(P_AUTOLOADOBJ))
     {
       // kein Autoloader...
       foreach(object ob: deep_inventory(tob))
       {
         // aber enthaltene Autoloader entsorgen...
-        if (ob->QueryProp(P_AUTOLOADOBJ))
+        if (({mixed})ob->QueryProp(P_AUTOLOADOBJ))
         {
-          catch(ob->remove();publish);
+          catch(({int})ob->remove();publish);
           if (ob) destruct(ob);
         }
       }
       // objekt ohne die AL bewegen.
-      catch(tob->move(newob,M_NOCHECK);publish);
+      catch(({int})tob->move(newob,M_NOCHECK);publish);
     }
     else {
       // Inhalt von Autoloadern retten.
       // neue instanz des ALs im neuen Objekt.
       object new_al_instance = present_clone(tob, newob);
       foreach(object ob: deep_inventory(tob)) {
-        if (ob->QueryProp(P_AUTOLOADOBJ)) {
+        if (({mixed})ob->QueryProp(P_AUTOLOADOBJ)) {
             // autoloader in Autoloadern zerstoeren...
-            catch(ob->remove(1);publish);
+            catch(({int})ob->remove(1);publish);
             if (ob) destruct(ob);
         }
         // alle nicht autoloader in die AL-Instanz im neuen Objekt oder
         // notfalls ins Inv.
         else {
           if (objectp(new_al_instance))
-            catch(ob->move(new_al_instance, M_NOCHECK);publish);
+            catch(({int})ob->move(new_al_instance, M_NOCHECK);publish);
           else
-            catch(ob->move(newob, M_NOCHECK);publish);
+            catch(({int})ob->move(newob, M_NOCHECK);publish);
         }
       }
       // Autoloader zerstoeren. Wird nicht vom Spielerobjekt im remove()
       // gemacht, wenn nicht NODROP.
-      catch(tob->remove(1);publish);
+      catch(({int})tob->remove(1);publish);
       if (tob) destruct(tob);
     }
   }
-  who->remove();
+  ({int})who->remove();
   if ( objectp(who) )
       destruct(who);
   rename_object(newob,ob_name);
-  newob->__reload_explore();
+  ({void})newob->__reload_explore();
   tp=this_player();
   efun::set_this_player(newob);
   if (objectp(weapon))
-    weapon->DoWield();
+    ({int})weapon->DoWield();
   if (pointerp(armours))
     for (i=sizeof(armours)-1;i>=0;i--)
       if (objectp(armours[i]))
-        armours[i]->do_wear("alles");
+        ({int})armours[i]->do_wear("alles");
   efun::set_this_player(tp);
   //Rueckgabewert noetig, weil Funktion vom Typ 'int'
   return(1);
diff --git a/secure/master/network.c b/secure/master/network.c
index 31a59b3..b3178b1 100644
--- a/secure/master/network.c
+++ b/secure/master/network.c
@@ -80,7 +80,7 @@
         if ( sizeof(mess) < 3 )
             data = ({ "Error: Wen soll ich fingern ?" });
         else
-            data = explode( "/p/daemon/finger"->
+            data = explode( ({string})"/p/daemon/finger"->
                             finger_single( lower_case(mess[2]), 0 ), "\n" );
         break;
 
@@ -147,13 +147,13 @@
   // Die folgenden Services sind keine Intermud-Dienste
   if(strstr(msg_text, "IPLOOKUP\n") == 0)
   {
-    "/p/daemon/iplookup"->update( msg_text );
+    ({void})"/p/daemon/iplookup"->update( msg_text );
     return;
   }
 
   if( strstr(msg_text, "DNSLOOKUP\n") == 0)
   {
-    "/p/daemon/dnslookup"->update( msg_text );
+    ({void})"/p/daemon/dnslookup"->update( msg_text );
     return;
   }
 
@@ -162,7 +162,7 @@
     return udp_query(msg_text[10..],host,port);
   }
   // Rest an inetd fuer Bearbeitung als Intermud-Nachricht.
-  "secure/inetd"->_receive_udp(host, msg_text);
+  ({void})"secure/inetd"->_receive_udp(host, msg_text);
 }
 
 
diff --git a/secure/master/userinfo.c b/secure/master/userinfo.c
index bde7788..e62a1db 100644
--- a/secure/master/userinfo.c
+++ b/secure/master/userinfo.c
@@ -872,9 +872,9 @@
   m_delete(userlist,real_name);
   
   if (wlevel >= LEARNER_LVL)
-    TO->BanishName(real_name, "So hiess mal ein Magier hier");
+    ({void})TO->BanishName(real_name, "So hiess mal ein Magier hier");
   else if (wlevel >= SEER_LVL)
-    TO->BanishName(real_name, "So hiess mal ein Seher hier");
+    ({void})TO->BanishName(real_name, "So hiess mal ein Seher hier");
 
 #ifdef _PUREFTPD_
     if (member(ftpuser,real_name)) {
@@ -1080,7 +1080,7 @@
     }
   }
   // Gildenname?
-  else if (GUILDMASTER->ValidGuild(alias)) {
+  else if (({int})GUILDMASTER->ValidGuild(alias)) {
       uids += ({GUILDID"."+alias});
       //hat die Gilde ein Projektverzeichnis?
       if (file_size("/"PROJECTDIR"/"+alias) == FSIZE_DIR) {
diff --git a/secure/merlin.c b/secure/merlin.c
index 21a4333..d010058 100644
--- a/secure/merlin.c
+++ b/secure/merlin.c
@@ -73,8 +73,8 @@
   move("/gilden/abenteurer",0);
   MBanishListe = m_allocate(0,2);
   restore_object(SAVEFILE);
-  EVENTD->RegisterEvent(EVT_LIB_PLAYER_CREATION, "player_change", ME);
-  EVENTD->RegisterEvent(EVT_LIB_LOGIN, "player_change", ME);
+  ({int})EVENTD->RegisterEvent(EVT_LIB_PLAYER_CREATION, "player_change", ME);
+  ({int})EVENTD->RegisterEvent(EVT_LIB_LOGIN, "player_change", ME);
   // absichtlich kein EVT_LIB_LOGOUT, s. Kommentar zu notify_player_leave().
 }
 
@@ -112,7 +112,7 @@
 {
   if (!stringp(str)||str=="")
     return 0;
-  return call_other(this_object(),"_query_"+str);
+  return ({mixed})call_other(this_object(),"_query_"+str);
 }
 
 varargs int id(string str)
@@ -144,7 +144,7 @@
 
 string long()
 {
-  EPMASTER->GiveExplorationPoint("merlin");
+  ({int})EPMASTER->GiveExplorationPoint("merlin");
   return break_string(
       "Merlin - der maechtige Urvater aller Magier - ist ein hagerer "
       "Mann, der einen blauen, mit Monden und Sternen uebersaeten Umhang "
@@ -227,7 +227,7 @@
 string QueryPossPronoun( mixed what, int casus, int number )
 {
   int gen2;
-  gen2 = ( intp( what ) ) ? what : what->QueryProp(P_GENDER);
+  gen2 = ( intp( what ) ) ? what : ({int})what->QueryProp(P_GENDER);
   return "sein" + query_g_suffix( gen2, casus, number );
 }
 
@@ -273,7 +273,7 @@
   mixed *art;
 
   art=({"stufen","Merlin",0,0,sprintf("%s ist jetzt ein%s Seher%s!",who,(g==2?"e":""),(g==2?"in":"")),sprintf("\nAm %s hat %s die noetigen Bedingungen\nerfuellt und ist vom Spielerstatus zum Seherstatus aufgestiegen. \n\n Herzlichen Glueckwunsch, %s!\n",dtime(time()),who,who)});
-  "/secure/news"->WriteNote(art,1);
+  ({int})"/secure/news"->WriteNote(art,1);
 }
 
 static void PostMagier(string who, string prom, int gender)
@@ -282,7 +282,7 @@
 
   art=({"stufen","Merlin",0,0,sprintf("%s ist jetzt ein%s Magier%s!",who,(gender==2?"e":""),(gender==2?"in":"")),sprintf("\nAm %s hat %s %s zu%s Magier%s\nberufen. Herzlichen Glueckwunsch, %s. Glueckwuensche auch an Dich,\n %s, zu Deine%s neuen %s!\n",dtime(time()),prom,who,(gender==2?"r":"m"),(gender==2?"in":""),who,prom,
 (gender==2?"r":"m"),(gender==2?"Tochter":"Sohn"))});
-  "/secure/news"->WriteNote(art,1);
+  ({int})"/secure/news"->WriteNote(art,1);
 }
 
 
@@ -290,9 +290,9 @@
   if (!objectp(wiz))
       return;
 
-  clone_object(FEHLERTEUFEL)->move(wiz, M_NOCHECK|M_GET);
+  ({int})clone_object(FEHLERTEUFEL)->move(wiz, M_NOCHECK|M_GET);
   tell_object(wiz, break_string(
-    "Huhu "+wiz->Name(WER) + "! Ich habe gesehen, dass Du keinen "
+    "Huhu "+({string})wiz->Name(WER) + "! Ich habe gesehen, dass Du keinen "
     "Fehlerteufel hast. Dieses Tool ist zum Debuggen von Fehlern im "
     "Mud sehr praktisch. Bitte schau ihn Dir mal an. :-) Die Hilfe zum "
     "Fehlerteufel kannst Du mit 'man fehlerteufel' lesen. BTW: Wenn "
@@ -324,7 +324,7 @@
   object ob = find_player(who);
   if (ob && rein && IS_WIZARD(ob)
       && !present_clone(FEHLERTEUFEL,ob)
-      && ob->QueryProp(P_LAST_LOGOUT) < 1237329604 )
+      && ({int})ob->QueryProp(P_LAST_LOGOUT) < 1237329604 )
     GibFehlerteufel(ob);
 }
 
@@ -343,7 +343,7 @@
     return;
   }
 
-  if (!pl->QueryGuest()) {
+  if (!({int})pl->QueryGuest()) {
   string plname = ({string})pl->Name(WER);
     CHMASTER->send("Anfaenger", this_object(),
       sprintf("%s macht nun ebenfalls das Morgengrauen unsicher. "
@@ -373,16 +373,16 @@
         tell_object(pl,break_string(sprintf("Huhu %s, um einen Bug in "
                 "Deinem Spielerobjekt zu beheben, wirst Du in ca. 8s "
                 "neugeladen. Bitte warte bis dahin ab und bleibe, wo "
-                "Du gerade bist.",pl->Name()),78,"Merlin teilt Dir mit: "));
+                "Du gerade bist.",({string})pl->Name()),78,"Merlin teilt Dir mit: "));
         return;
     }
 
     plname=getuid(pl);
     tell_object(pl,break_string(sprintf("Huhu %s, um einen Bug in "
             "Deinem Spielerobjekt zu beheben, wirst Du jetzt "
-            "neugeladen.",pl->Name()),78,"Merlin teilt Dir mit: "));
+            "neugeladen.",({string})pl->Name()),78,"Merlin teilt Dir mit: "));
 
-    if (err=catch(master()->renew_player_object(pl);publish)) {
+    if (err=catch(({int})master()->renew_player_object(pl);publish)) {
         log_file("zesstra/failed_rewew.log",sprintf("%s: Fehler %O beim "
               "Renew von %s\n",dtime(time()),err,plname));
         tell_object(pl,break_string("Beim Neuladen Deines Spielerobjekts "
@@ -444,7 +444,7 @@
   write("Merlin gibt Dir eine schallende Ohrfeige.\n");
   say(sprintf("Merlin gibt %s eine schallende Ohrfeige.\n",
               capitalize((string)this_player()->name(WEM))), this_player());
-  en->StopHuntFor(this_object(), 1);
+  ({int})en->StopHuntFor(this_object(), 1);
 }
 */
 void shoutansw()
@@ -455,11 +455,11 @@
 
   if (!(env=environment()))
     return;
-  if (!(ti=this_interactive())||ti->QueryProp(P_LEVEL)<19||ti->QueryProp(P_GHOST))
+  if (!(ti=this_interactive())||({int})ti->QueryProp(P_LEVEL)<19||({int})ti->QueryProp(P_GHOST))
     return;
   tell_object(ti,"Du spuerst einen sengenden Schmerz.\n");
-  ti->do_damage( ti->QueryProp(P_HP) / 2 + 5);
-  if(ti->QueryProp(P_GHOST)) return;
+  ({int})ti->do_damage( ({int})ti->QueryProp(P_HP) / 2 + 5);
+  if(({int})ti->QueryProp(P_GHOST)) return;
   ans="ich hab nicht die leiseste Idee, wo ich hier bin ...\n";
   path=old_explode(object_name(env),"/");
   if (path[0]=="d")
@@ -526,8 +526,8 @@
                 if( path[0]=="p" && path[1]=="verein" ) {
                         ans="ich stehe in Port Vain.";
                 }
-  if (!this_interactive()->QueryProp(P_INVIS))
-    ans=this_interactive()->Name(WER)+", "+ans;
+  if (!({int})this_interactive()->QueryProp(P_INVIS))
+    ans=({string})this_interactive()->Name(WER)+", "+ans;
   else ans=capitalize(ans);
   call_out("myshout",0,break_string(ans, 78, "Merlin ruft: "));
 }
@@ -577,7 +577,7 @@
     if (sscanf(str,"%s sagt: %s",name,message)!=2)
       return;
 
-  if (!name || !sizeof(name) || !master()->find_userinfo(name))
+  if (!name || !sizeof(name) || !({int})master()->find_userinfo(name))
     return;
 
   if (name!=getuid(this_interactive()) && !ARCH_SECURITY)
@@ -646,7 +646,7 @@
   if (IS_SEER(pl))
     return 1;
   
-  if (LEPMASTER->QueryReadyForWiz(pl)==1)
+  if (({int})LEPMASTER->QueryReadyForWiz(pl)==1)
     return 1;
 
   s=({string})LEPMASTER->QueryReadyForWizText(pl); 
@@ -660,7 +660,7 @@
                                78, "Merlin teilt Dir mit: "));
 
   if (environment() == environment(pl))
-    say(pl->name(WER)
+    say(({string})pl->name(WER)
         +" erfuellt noch nicht alle Anforderungen fuer den "+was+
         "status.\n",pl);
   
@@ -689,11 +689,11 @@
   //
   // player is second?
   //
-  if (who->QueryProp(P_SECOND))
+  if (({string})who->QueryProp(P_SECOND))
   {
      tell_object(who,"Du bist ein Zweitspieler und kannst als solcher kein Magier werden.\n"
           +"Versuchs Doch mal mit Deinem Erstie.\n");
-     write("Du kannst "+who->name()+" nicht zum Magier machen. Das geht bei "
+     write("Du kannst "+({string})who->name()+" nicht zum Magier machen. Das geht bei "
           +"Zweities\nleider nicht. Frag doch mal nach dem Erstie.\n");
      return 1;
   }
@@ -713,15 +713,15 @@
   {
     tell_object(promoter,capitalize(who)+" darf nur von einem Erzmagier zum "+
                     "Magier gemacht werden.\n");
-    say(promoter->name(WER)+" ist kein Erzmagier und darf "+capitalize(who)+
+    say(({string})promoter->name(WER)+" ist kein Erzmagier und darf "+capitalize(who)+
             " nicht zum Magier machen.\n");
     return 1;
   }
   //
   // player has PK?
   //
-  if (who->QueryProp("playerkills")) {
-     tell_room(environment(who),who->name()+" hat noch einen Playerkill und kann somit kein Magier werden.\n"
+  if (({string})who->QueryProp("playerkills")) {
+     tell_room(environment(who),({string})who->name()+" hat noch einen Playerkill und kann somit kein Magier werden.\n"
                            "Am besten den Sheriff oder einen Erzmagier verstaendigen.\n");
          return 1;
   }
@@ -741,7 +741,7 @@
   {
     if (!ARCH_SECURITY) {
       Write("Dich kann nur ein Erzmagier zum \"richtigen\" Magier machen!\n");
-      Say("Nur ein Erzmagier kann "+who->name(WEN)+" zum \"richtigen\" Magier machen!\n");
+      Say("Nur ein Erzmagier kann "+({string})who->name(WEN)+" zum \"richtigen\" Magier machen!\n");
       return 0;
     }
     ret=({int})"secure/master"->advance_wizlevel(geteuid(who),21);
@@ -750,11 +750,11 @@
       say("Merlin: error "+ret+"\n");
       write("Merlin: error "+ret+"\n");
     }
-    write("Merlin ruft: "+who->name(WER)+" ist in den Kreis der Magier "+
+    write("Merlin ruft: "+({string})who->name(WER)+" ist in den Kreis der Magier "+
               "aufgenommen worden!\n");
-    shout("Merlin ruft: "+who->name(WER)+" ist in den Kreis der Magier "+
+    shout("Merlin ruft: "+({string})who->name(WER)+" ist in den Kreis der Magier "+
               "aufgenommen worden!\n");
-    "secure/master"->renew_player_object(who);
+    ({int})"secure/master"->renew_player_object(who);
     return 1;
   }
 
@@ -766,7 +766,7 @@
     domains=({string*})"secure/master"->get_domain_homes(getuid(who));
     if (!domains || !pointerp(domains) || !sizeof(domains))
     {
-      Say(who->name(WER)+" gehoert noch keiner Region an und kann daher noch "+
+      Say(({string})who->name(WER)+" gehoert noch keiner Region an und kann daher noch "+
               "kein Voll-\nmagier werden.\n");
       Write("Du gehoerst noch keiner Region an. Schliess Dich zunaechst einer "+
                 "an und komm\ndann wieder!\n");
@@ -775,8 +775,8 @@
     ret=({int})"secure/master"->advance_wizlevel(geteuid(who),25);
     if(ret>0)
     {
-      shout(who->name(WER)+" arbeitet jetzt an einer Region mit!\n");
-      "secure/master"->renew_player_object(who);
+      shout(({string})who->name(WER)+" arbeitet jetzt an einer Region mit!\n");
+      ({int})"secure/master"->renew_player_object(who);
       return 1;
     }
     write("RETURNVALUE "+ret+"\n");
@@ -791,7 +791,7 @@
   {
     if (!ARCH_SECURITY) {
       Write("Dich kann nur ein Erzmagier zum \"richtigen\" Magier machen!\n");
-      Say("Nur ein Erzmagier kann "+who->name(WEN)+" zum \"richtigen\" Magier machen!\n");
+      Say("Nur ein Erzmagier kann "+({string})who->name(WEN)+" zum \"richtigen\" Magier machen!\n");
       return 0;
     }
     ret=({int})"secure/master"->advance_wizlevel(geteuid(who),20);
@@ -801,7 +801,7 @@
       write("Merlin: error "+ret+"\n");
     }
     string wizname = ({string})who->query_real_name();
-    "secure/master"->renew_player_object(who);
+    ({int})"secure/master"->renew_player_object(who);
     // Fehlerteufel geben
     call_out(#'GibFehlerteufel,4,find_player(wizname));
     return 1;
@@ -815,7 +815,7 @@
     tell_object(promoter,"Du musst derzeit mindestens Level "+
                     (DOMAINMEMBER_LVL+1)+" haben, um jemanden befoerden zu "+
                                 "koennen.\n");
-    say(promoter->name(WER)+" ist kein Vollmagier und darf daher niemanden "+
+    say(({string})promoter->name(WER)+" ist kein Vollmagier und darf daher niemanden "+
             "zum Vollmagier machen.\n");
     return 1;
   }
@@ -824,19 +824,19 @@
   // Er schlaegt fehl, wenn der Vertrag der Clone einer alten BP ist.
   if (!(vertrag=present_clone("/obj/vertrag",who)) ||
       object_name(blueprint(vertrag))!="/obj/vertrag" ||
-      !(vertrag->is_unterschrieben()) )
+      !(({int})vertrag->is_unterschrieben()) )
   {
     Write("Du hast ja gar keinen unterschriebenen Vertrag bei Dir. Besorg Dir "+
               "einen Ver-\ntrag, unterschreibe ihn und komm dann wieder!\n");
-    Say(who->name(WER)+" hat keinen unterschriebenen Vertrag.\n");
+    Say(({string})who->name(WER)+" hat keinen unterschriebenen Vertrag.\n");
     return 1;
   }
   if (geteuid(vertrag)!=secure_euid())
   {
     tell_object(promoter,"Das geht nicht, er hat einen Vertrag von "+
                     capitalize(geteuid(vertrag))+" bei sich.\n");
-    say(promoter->name(WER)+" versucht, "+who->name(WER)+" zum Magier zu "+
-            "machen, doch "+who->name(WER)+" hat einen Vertrag\nvon "+
+    say(({string})promoter->name(WER)+" versucht, "+({string})who->name(WER)+" zum Magier zu "+
+            "machen, doch "+({string})who->name(WER)+" hat einen Vertrag\nvon "+
                 capitalize(geteuid(vertrag))+" bei sich.\n",promoter);
     return 0;
   }
@@ -847,18 +847,18 @@
   {
     PostMagier(capitalize(getuid(who)),
                capitalize(secure_euid()),
-               who->QueryProp(P_GENDER));
+               ({int})who->QueryProp(P_GENDER));
     write_file("/log/SPONSOR",dtime(time())+": "+capitalize(getuid(promoter))+" macht "+
-             who->name(WER)+" zum Learner.\n");
-    write(who->name(WER)+" ist in den Kreis der Magier aufgenommen worden!\n");
-    shout(who->name(WER)+" ist in den Kreis der Magier aufgenommen worden!\n");
-    if ("secure/master"->set_player_object(geteuid(who),"/std/shells/magier")
+             ({string})who->name(WER)+" zum Learner.\n");
+    write(({string})who->name(WER)+" ist in den Kreis der Magier aufgenommen worden!\n");
+    shout(({string})who->name(WER)+" ist in den Kreis der Magier aufgenommen worden!\n");
+    if (({int})"secure/master"->set_player_object(geteuid(who),"/std/shells/magier")
             <=0)
     {
       say("MERLIN: konnte Magiershell nicht einstellen.\n");
       write("MERLIN: konnte Magiershell nicht einstellen.\n");
     }
-    "secure/master"->renew_player_object(who);
+    ({int})"secure/master"->renew_player_object(who);
     return 1;
   }
   write(" --RETURNVALUE IS "+ret+"\n");
@@ -904,7 +904,7 @@
                        +"um %s herum auf.\n\nDie Aura verschwindet langsam.\n",
                        plname),78,0,1), ({player}));
  
-  if ("secure/master"->advance_wizlevel(geteuid(player),1)<=0)
+  if (({int})"secure/master"->advance_wizlevel(geteuid(player),1)<=0)
   {
     write("Merlin sagt: Da geht was schief ... sag mal Zook Bescheid.\n");
     say("Merlin sagt: Da geht was schief ... sag mal Zook Bescheid.\n");
@@ -912,18 +912,18 @@
     return;
   }
   playername = geteuid(player);
-  "secure/master"->renew_player_object(player);
+  ({int})"secure/master"->renew_player_object(player);
   player = find_player(playername);
   text = sprintf(" ist jetzt ein%s Seher%s!\n",
-    ((player->QueryProp(P_GENDER))==2?"e":""),
-    ((player->QueryProp(P_GENDER))==2?"in":""));
+    ((({int})player->QueryProp(P_GENDER))==2?"e":""),
+    ((({int})player->QueryProp(P_GENDER))==2?"in":""));
   write("Merlin ruft: "+capitalize(playername)+text);
   shout("Merlin ruft: "+capitalize(playername)+text);
   PostSeher(capitalize(playername),({int})player->QueryProp(P_GENDER));
   if(!catch(
         faq=clone_object("/d/seher/haeuser/special/seherfaqmobil") ;publish))
   {
-    faq->move(player,M_NOCHECK);
+    ({int})faq->move(player,M_NOCHECK);
     tell_object(player, "Aus dem Nichts erscheint eine kleine Belohnung fuer Dich.\n");
   }
   
@@ -971,7 +971,7 @@
             break_string(sprintf("Das ist eine grosse Freude. %s hat sich "
      "tapfer durch das "MUDNAME" geschlagen und mittlerweile alle "
      "Anforderungen erfuellt, um %s zu werden.",                                  
-     plname, (player->QueryProp(P_GENDER))==1?"Seher":"Seherin"),
+     plname, (({int})player->QueryProp(P_GENDER))==1?"Seher":"Seherin"),
               78, "Merlin sagt: "));
 
   call_out("seer_sequenz2", 4, player, plname);
@@ -997,7 +997,7 @@
                                    "erfuellt. Warte einen Moment...", 78,
                                    "Merlin teilt Dir mit: "));
   busy=1;
-  call_out("seer_sequenz1",4,player, player->Name());
+  call_out("seer_sequenz1",4,player, ({string})player->Name());
   return(0); //non-void funktion
 }
 
@@ -1019,8 +1019,8 @@
 }
 
 public int remove(int silent) {
-  EVENTD->UnregisterEvent(EVT_LIB_LOGIN, ME);
-  EVENTD->UnregisterEvent(EVT_LIB_PLAYER_CREATION, ME);
+  ({int})EVENTD->UnregisterEvent(EVT_LIB_LOGIN, ME);
+  ({int})EVENTD->UnregisterEvent(EVT_LIB_PLAYER_CREATION, ME);
   destruct(this_object());
   return 1;
 }
@@ -1044,7 +1044,7 @@
   foreach(object ob: all_inventory(environment()))
   {
     if (interactive(ob) && query_idle(ob)<180
-        && ob->QueryProp(P_XP)>999999)
+        && ({int})ob->QueryProp(P_XP)>999999)
       return;
   }
   // Ausgaenge durchsuchen
@@ -1082,17 +1082,17 @@
 {
   string descr;
 
-  if( IS_LEARNER(who) && who->QueryProp( P_WANTS_TO_LEARN ) )
+  if( IS_LEARNER(who) && ({int})who->QueryProp( P_WANTS_TO_LEARN ) )
     descr = "[" + object_name(ME) + "]\n";
   else
     descr = "";
   descr+="Du bist im Wizclub 'Zum lustigen Merlin'. Dieser Wizclub ist etwas besonderes -\ner hat keinen festen Standort, sondern wandert im Mud herum. Ausserdem kann er\nSpieler zu Magiern machen - aber nur, wenn man ihn von aussen aus darauf\nanspricht.\n";
-  if ( who->QueryProp(P_SHOW_EXITS) )
+  if ( ({int})who->QueryProp(P_SHOW_EXITS) )
     descr += "Es gibt 2 sichtbare Ausgaenge: raus und gilde.\n";
   descr += make_invlist(who, all_inventory(ME) - ({ who }));
   if( environment())
     descr += "\nAusserhalb siehst Du:\n"
-      + environment()->int_short(who,ME);
+      + ({string})environment()->int_short(who,ME);
   return descr;
 }
 
@@ -1102,7 +1102,7 @@
   string descr;
 
   descr = "";
-  iswiz = IS_LEARNER( viewer ) && viewer->QueryProp(P_WANTS_TO_LEARN);
+  iswiz = IS_LEARNER( viewer ) && ({int})viewer->QueryProp(P_WANTS_TO_LEARN);
 
   for (i = 0; i < sizeof(inv); i++)
   {
@@ -1184,7 +1184,7 @@
 
 void show_exits()
 {
-  printf("%s",environment()->GetExits());
+  printf("%s",({string})environment()->GetExits());
 }
 
 int gehen(string str)
@@ -1198,10 +1198,10 @@
   switch (query_verb())
   {
     case "gilde":
-      this_player()->move("/gilden/abenteurer",M_GO,"in die Gilde");
+      ({int})this_player()->move("/gilden/abenteurer",M_GO,"in die Gilde");
       return 1;
     case "raus":
-      this_player()->move(environment(),M_GO,"raus");
+      ({int})this_player()->move(environment(),M_GO,"raus");
       return 1;
   }
   if (!IS_WIZARD(this_interactive()))
@@ -1212,7 +1212,7 @@
   mapping exits=({mapping})environment()->QueryProp(P_EXITS);
   if (!str||str=="")
   {
-    printf(environment()->int_short(ME,ME));
+    printf(({string})environment()->int_short(ME,ME));
     show_exits();
     return 1;
   }
@@ -1233,7 +1233,7 @@
   if (str[0]=='*')
   {
     goto(str[1..]);
-    printf(environment()->int_short(ME,ME));
+    printf(({string})environment()->int_short(ME,ME));
     show_exits();
     return 1;
   }
@@ -1241,7 +1241,7 @@
     return 0;
   move(exits[str],0);
   write("Merlin sagt: Jawoll, Chef.\n");
-  printf(environment()->int_short(ME,ME));
+  printf(({string})environment()->int_short(ME,ME));
   show_exits();
   return 1;
 }
diff --git a/secure/news.c b/secure/news.c
index 2f9e6aa..83a73f5 100644
--- a/secure/news.c
+++ b/secure/news.c
@@ -131,7 +131,7 @@
 
   if (member(grouplist, name)) return -2; // Gibt es schon
 
-  if (!master()->find_userinfo(owner)) return -3;
+  if (!({int})master()->find_userinfo(owner)) return -3;
 
   savefilea = old_explode(name,".");
   savefile = implode(savefilea,"/");
diff --git a/secure/questmaster.c b/secure/questmaster.c
index d6f2fb4..eccb425 100644
--- a/secure/questmaster.c
+++ b/secure/questmaster.c
@@ -101,13 +101,13 @@
 
   RebuildMQCache();
   set_next_reset(43200); // Reset alle 12 Stunden.
-  EVENTD->RegisterEvent(EVT_LIB_QUEST_SOLVED,"HandleQuestSolved",
+  ({int})EVENTD->RegisterEvent(EVT_LIB_QUEST_SOLVED,"HandleQuestSolved",
       ME);
 }
 
 public int remove(int silent) {
   save_info();
-  EVENTD->UnregisterEvent(EVT_LIB_QUEST_SOLVED, ME);
+  ({int})EVENTD->UnregisterEvent(EVT_LIB_QUEST_SOLVED, ME);
   destruct(ME);
   return 1;
 }
@@ -370,7 +370,7 @@
 void Channel(string msg) {
   if(!interactive(previous_object()))
     return;
-  catch(CHMASTER->send("Abenteuer", ME, msg);publish);
+  catch(({int})CHMASTER->send("Abenteuer", ME, msg);publish);
 }
 
  /* quoted from /sys/mail.h: */
@@ -423,7 +423,7 @@
   mail[MSG_ID]=MUDNAME":"+time();
   mail[MSG_BODY]=text;
 
-  "/secure/mailer"->DeliverMail(mail,0);
+  ({string*})"/secure/mailer"->DeliverMail(mail,0);
   return;
 }
 
@@ -451,7 +451,7 @@
   if(!objectp(pl))
     return "Ohne Spielernamen/Spielerobjekt gibt es auch keine Liste.\n";
 
-  if ( (pl->QueryProp(P_TTY)) == "ansi")
+  if ( (({string})pl->QueryProp(P_TTY)) == "ansi")
   {
       ja = ANSI_GREEN + "ja" + ANSI_NORMAL;
       nein = ANSI_RED + "nein" + ANSI_NORMAL;
@@ -480,7 +480,7 @@
     for (j=sizeof(qgrouped[i])-1;j>=0; j--)
     {
       qtmp = QueryQuest(qgrouped[i][j]);
-      int geloest_status = pl->QueryQuest(qgrouped[i][j]);
+      int geloest_status = ({int})pl->QueryQuest(qgrouped[i][j]);
       // Quest ausgeben, wenn "kein Filter" gegeben oder Quest geloest und
       // Filter "geloest" oder Quest ungeloest und Filter "ungeloest".
       if ( !(geloest_filter & (FILTER_GELOEST|FILTER_UNGELOEST))
@@ -552,7 +552,7 @@
   string qname = data[E_QUESTNAME];
 
   if (!quests[qname] || !objectp(trigob)
-      || trigob->QueryProp(P_TESTPLAYER) || IS_LEARNER(trigob))
+      || ({int|string})trigob->QueryProp(P_TESTPLAYER) || IS_LEARNER(trigob))
     return;
 
   int lvl = ({int})trigob->QueryProp(P_LEVEL);
@@ -870,7 +870,7 @@
       ((this_player() == winner) && !query_once_interactive(winner)))
     return MQ_ILLEGAL_OBJ;
   // Gaeste koennen keine Miniquests bestehen.
-  if (winner->QueryGuest())
+  if (({int})winner->QueryGuest())
     return MQ_GUEST;
   // Aufrufendes Objekt existiert gar nicht?
   if (!previous_object())
@@ -884,7 +884,7 @@
   if (!miniquests[objname, MQ_DATA_ACTIVE])
     return MQ_IS_INACTIVE;
 
-  string mq = (MASTER->query_mq(getuid(winner)) || "");
+  string mq = (({string})MASTER->query_mq(getuid(winner)) || "");
 
   // Spieler hat die MQ schonmal bestanden? Dann keine weiteren Aktivitaet
   // noetig
@@ -892,14 +892,14 @@
     return MQ_ALREADY_SET;
 
   catch(mq = set_bit(mq, miniquests[objname,MQ_DATA_QUESTNO]);publish);
-  MASTER->update_mq(getuid(winner), mq);
+  ({int})MASTER->update_mq(getuid(winner), mq);
 
   MQSOLVEDLOG(sprintf("%s: %s, (#%d), (Stupse %d)",
     objname, geteuid(winner), miniquests[objname, MQ_DATA_QUESTNO],
     miniquests[objname, MQ_DATA_POINTS]));
 
   // Miniquest-Event ausloesen
-  EVENTD->TriggerEvent( EVT_LIB_MINIQUEST_SOLVED, ([
+  ({int})EVENTD->TriggerEvent( EVT_LIB_MINIQUEST_SOLVED, ([
             E_OBJECT: previous_object(),
             E_OBNAME: objname,
             E_PLNAME: getuid(winner),
@@ -934,7 +934,7 @@
   if (!member(users_mq, spieler)) {
     int mqpoints;
     int p=-1;
-    string s = (MASTER->query_mq(spieler) || "");
+    string s = (({string})MASTER->query_mq(spieler) || "");
     while( (p=next_bit(s, p)) != -1) {
       mqpoints+=by_num[p][0];
     }
@@ -972,7 +972,7 @@
   if (!member(miniquests,name))
     return MQ_KEY_INVALID;
 
-  mq = (MASTER->query_mq(spieler) || "");
+  mq = (({string})MASTER->query_mq(spieler) || "");
 
   return test_bit(mq, miniquests[name, MQ_DATA_QUESTNO]);
 }
@@ -989,13 +989,13 @@
   if (!member(miniquests,name))
     return MQ_KEY_INVALID;
 
-  string mq = (MASTER->query_mq(pl) || "");
+  string mq = (({string})MASTER->query_mq(pl) || "");
 
   if (test_bit(mq, miniquests[name,MQ_DATA_QUESTNO]))
     return MQ_ALREADY_SET;
 
   catch (mq = set_bit(mq, miniquests[name, MQ_DATA_QUESTNO]);publish);
-  MASTER->update_mq(pl, mq);
+  ({int})MASTER->update_mq(pl, mq);
 
   MQMLOG(sprintf("SetPlayerMiniQuest: %s %s (%s)",
                  pl, name, getuid(this_interactive())));
@@ -1015,13 +1015,13 @@
   if (!member(miniquests,name))
     return MQ_KEY_INVALID;
 
-  string mq = (MASTER->query_mq(pl) || "");
+  string mq = (({string})MASTER->query_mq(pl) || "");
 
   if (!test_bit(mq, miniquests[name, MQ_DATA_QUESTNO]))
     return MQ_ALREADY_SET;
 
   catch (mq = clear_bit(mq, miniquests[name, MQ_DATA_QUESTNO]);publish);
-  MASTER->update_mq(pl, mq);
+  ({int})MASTER->update_mq(pl, mq);
 
   MQMLOG(sprintf("ClearPlayerMiniQuest: %s %s (%s)",
                  pl, name, getuid(this_interactive())));
diff --git a/secure/scoremaster.c b/secure/scoremaster.c
index 6a08eff..0cd1e5d 100644
--- a/secure/scoremaster.c
+++ b/secure/scoremaster.c
@@ -226,7 +226,7 @@
   i=sizeof(whop=m_indices(to_change))-1;
   while (i>=0 && get_eval_cost()>100000)
   {
-    ek = ({string})(MASTER->query_ek(who=whop[i]) || "");
+    ek = (({string})MASTER->query_ek(who=whop[i]) || "");
     for (j=sizeof(what=to_change[who])-1;j>=0;j--) {
       if ((value=what[j])>0) {
     // Vergabestatistik hochzaehlen.
@@ -245,7 +245,7 @@
   sprintf("SET_CLEAR_BIT (reset): %s %4d %s\n",
     who, j, strftime("%d%m%Y-%T",time()) ));
     }
-    MASTER->update_ek(who, ek);
+    ({int})MASTER->update_ek(who, ek);
 
     if (member(users_ek, who))
       m_delete(users_ek, who);
@@ -399,7 +399,7 @@
   foreach(string pl: unconfirmed_scores[bit]) {
       string eks = ({string})master()->query_ek(pl);
       eks = set_bit(eks, bit);
-      master()->update_ek(pl, eks);
+      ({int})master()->update_ek(pl, eks);
       write_file(SCOREAUTOLOG, sprintf(
     "SETBIT: %s %5d %s\n",
     strftime("%d%m%Y-%T",time()), bit, pl));
@@ -688,7 +688,7 @@
 // ausgetragen/deaktiviet sind.
 public string QueryAllKills(string pl)
 {
-  return (MASTER->query_ek(pl) || "");
+  return (({string})MASTER->query_ek(pl) || "");
 }
 
 // filtert alle Eintraege aus dem Bitstring heraus, die fuer
@@ -711,7 +711,7 @@
 
   if (member(users_ek,pl)) return users_ek[pl];
 
-  string s = (MASTER->query_ek(pl) || "");
+  string s = (({string})MASTER->query_ek(pl) || "");
   
   int p=-1;
   int summe;
@@ -779,11 +779,11 @@
   }
   else {
     // sonst wird das Bit direkt im Spieler gesetzt.
-    ek = (MASTER->query_ek(pls) || "");
+    ek = (({string})MASTER->query_ek(pls) || "");
     if (test_bit(ek, bit))
       return -3;
     ek = set_bit(ek, bit);
-    MASTER->update_ek(pls, ek);
+    ({int})MASTER->update_ek(pls, ek);
     // Vergabestatistik hochzaehlen.
     npcs[by_num[bit,BYNUM_KEY],NPC_COUNT]++;
   }
@@ -818,7 +818,7 @@
       member(pls,pl) != -1)
     return 1;
 
-  string eks = (MASTER->query_ek(pl) || "");
+  string eks = (({string})MASTER->query_ek(pl) || "");
 
   return test_bit(eks, bit);
 }
@@ -865,9 +865,9 @@
   if (!allowed())
     return SCORE_NO_PERMISSION;
 
-  ek = (MASTER->query_ek(pl) || "");
+  ek = (({string})MASTER->query_ek(pl) || "");
   ek = set_bit(ek, bit);
-  MASTER->update_ek(pl, ek);
+  ({int})MASTER->update_ek(pl, ek);
 
   // Vergabestatistik hochzaehlen.
   npcs[by_num[bit,BYNUM_KEY],NPC_COUNT]++;
@@ -889,9 +889,9 @@
   if (!allowed())
     return SCORE_NO_PERMISSION;
 
-  ek = (MASTER->query_ek(pl) || "");
+  ek = (({string})MASTER->query_ek(pl) || "");
   ek = clear_bit(ek, bit);
-  MASTER->update_ek(pl, ek);
+  ({int})MASTER->update_ek(pl, ek);
 
   // Vergabestatistik runterzaehlen.
   npcs[by_num[bit,BYNUM_KEY],NPC_COUNT]--;
@@ -1297,7 +1297,7 @@
       tip=getTip(tmp[index]);
       if (stringp(tip) && sizeof(tip)) {
     ektip=set_bit(ektip,npcs[tmp[index],NPC_NUMBER]);
-    MASTER->update_ektips(pl,ektip);
+    ({int})MASTER->update_ektips(pl,ektip);
     break; //fertig
       }
   }
@@ -1412,10 +1412,10 @@
   }
 
   if (changed) {
-      master()->update_ek(pl, eks);
+      ({int})master()->update_ek(pl, eks);
   }
   if (changed2) {
-      master()->update_ektips(pl, ektips);
+      ({int})master()->update_ektips(pl, ektips);
   }
   opfer-=({""});
   write_file(WERKILLTWEN,sprintf("%s\n%=-78s\n\n",pl,CountUp(opfer)||""));
diff --git a/secure/telnetneg.c b/secure/telnetneg.c
index 707bc7b..c5da0d2 100644
--- a/secure/telnetneg.c
+++ b/secure/telnetneg.c
@@ -279,7 +279,7 @@
   {
     send_telnet_neg_str(
         to_bytes(({SB, TELOPT_MSSP}))
-        + to_bytes(sprintf("%s", mssp->get_telnegs_str()),
+        + to_bytes(sprintf("%s", ({string})mssp->get_telnegs_str()),
                    "ASCII//TRANSLIT"));
     // die Daten brauchen wir nicht mehr
     opt->lo_wishes->sbdata = 0;
@@ -988,8 +988,8 @@
   _bind_telneg_std_handlers();
   // dann restliche Daten aus dem Loginobjekt holen.
   Terminals = ({string *}) previous_object()->query_terminals();
-  Set( P_TTY_COLS, previous_object()->Query(P_TTY_COLS) );
-  Set( P_TTY_ROWS, previous_object()->Query(P_TTY_ROWS) );
+  Set( P_TTY_COLS, ({int})previous_object()->Query(P_TTY_COLS) );
+  Set( P_TTY_ROWS, ({int})previous_object()->Query(P_TTY_ROWS) );
 
   struct telopt_s opt = TN[TELOPT_NAWS];
   if (optargs = (opt->re_wishes)->sbdata) {
diff --git a/secure/wizlevels.h b/secure/wizlevels.h
index e785158..f2a72fb 100644
--- a/secure/wizlevels.h
+++ b/secure/wizlevels.h
@@ -37,15 +37,15 @@
 #define IS_SPECIAL(user) (query_wiz_level(user) >= SPECIAL_LVL)
 #define IS_WIZARD(user) (query_wiz_level(user) >= WIZARD_LVL)
 #define IS_DOMAINMEMBER(user) (query_wiz_level(user) >= DOMAINMEMBER_LVL)
-#define IS_DEPUTY(user) (master()->IsDeputy(user))
+#define IS_DEPUTY(user) (({int})master()->IsDeputy(user))
 #define IS_LORD(user) (query_wiz_level(user) >= LORD_LVL)
 #define IS_ELDER(user) (query_wiz_level(user) >= ELDER_LVL)
 #define IS_ARCH(user) (query_wiz_level(user) >= ARCH_LVL)
 #define IS_GOD(user) (query_wiz_level(user) >= GOD_LVL)
 
 #define IS_LEARNING(user) (query_wiz_level(user) >= LEARNER_LVL &&\
-                           user->QueryProp(P_WANTS_TO_LEARN))
-#define IS_LORD_DOMAIN(user,domain) (master()->domain_master(user,domain))
+                           ({int})user->QueryProp(P_WANTS_TO_LEARN))
+#define IS_LORD_DOMAIN(user,domain) (({int})master()->domain_master(user,domain))
 
 /*
  * Interface for enhanced security functions
diff --git a/std/armour/combat.c b/std/armour/combat.c
index 59d3fdd..b3456bc 100644
--- a/std/armour/combat.c
+++ b/std/armour/combat.c
@@ -60,7 +60,7 @@
             prot = (pac/4 + random(pac*3/4 + 1)) || 1 ;
           object stat = find_object("/d/erzmagier/zesstra/pacstat");
           if (stat)
-            stat->acstat(QueryProp(P_ARMOUR_TYPE),prot,
+            ({string})stat->acstat(QueryProp(P_ARMOUR_TYPE),prot,
                          random(pac)+1);
 
           // ruestungschutz an defendfunc weitermelden
@@ -112,7 +112,7 @@
 // Es duerfen nur "legale" Ruestungstypen gesetzt werden, ansonsten
 // wird AT_ILLEGAL gesetzt.
 static mixed _set_armour_type(mixed type ) {
-    if (!COMBAT_MASTER->valid_armour_type(type))
+    if (!({int})COMBAT_MASTER->valid_armour_type(type))
     {
         Set(P_ARMOUR_TYPE, (type=AT_ILLEGAL), F_VALUE);
     }
@@ -213,7 +213,7 @@
     // muss der Traeger davon natuerlich beeinflusst werden.
     if (objectp(worn_by=QueryProp(P_WORN)))
     {
-        worn_by->AddResistanceModifier(resistance_strengths,
+        ({int})worn_by->AddResistanceModifier(resistance_strengths,
                                        QueryProp(P_ARMOUR_TYPE));
     }
    return resistance_strengths;
diff --git a/std/clothing/container_description.c b/std/clothing/container_description.c
index ca0d9c6..3f19e80 100644
--- a/std/clothing/container_description.c
+++ b/std/clothing/container_description.c
@@ -97,7 +97,7 @@
 {
   string id, tmp;
   int idx;
-  tmp = capitalize(obj->short()||"")[0..<2]
+  tmp = capitalize(({string})obj->short()||"")[0..<2]
       + (!(flags & 4) && (flags & 1) ? " ["+object_name(obj)+"]" : "");
   if(flags & 3 || living(obj)) id = object_name(obj);
   else
@@ -125,7 +125,7 @@
   mixed objs, info;
   string descr;
 
-  iswiz = IS_LEARNER( viewer ) && viewer->QueryProp(P_WANTS_TO_LEARN);
+  iswiz = IS_LEARNER( viewer ) && ({int})viewer->QueryProp(P_WANTS_TO_LEARN);
   descr = ""; objs = ({}); info = ({});
   map(inv, #'stringenize/*'*/, iswiz | (flags & 2) | (flags & 4), &objs, &info);
   if(flags & 1) return info;
diff --git a/std/container/description.c b/std/container/description.c
index 1de834e..cf56803 100644
--- a/std/container/description.c
+++ b/std/container/description.c
@@ -47,16 +47,16 @@
   
   if ( (!(flags & 4) && (flags & 1))) {
     //wenn Magier und Magierinfos angehaengt werden sollen:
-    tmp = capitalize(obj->short()||"")[0..<2]
+    tmp = capitalize(({string})obj->short()||"")[0..<2]
         + " ["+object_name(obj)+"]";
   }
-  else if (obj->QueryProp(P_INVIS)) {
+  else if (({int})obj->QueryProp(P_INVIS)) {
     //keine Ausgabe bzw. leerer String, wird dann von collect rausgeschmissen
     tmp="";
   }
   else {
     //Spieler, Magier ohne P_WANTS_TO_LEARN etc.
-    tmp = capitalize(obj->short()||"")[0..<2];
+    tmp = capitalize(({string})obj->short()||"")[0..<2];
   }
   //wenn wizard und 'dont collect equal objects': id ist object_name()
   if(flags & 3 || living(obj)) 
@@ -90,7 +90,7 @@
   int iswiz;
   mixed objs, info;
 
-  iswiz = IS_LEARNER( viewer ) && viewer->QueryProp(P_WANTS_TO_LEARN);
+  iswiz = IS_LEARNER( viewer ) && ({int})viewer->QueryProp(P_WANTS_TO_LEARN);
   objs = ({}); info = ({});
   map(inv, #'stringenize/*'*/, iswiz | (flags & 2) | (flags & 4), &objs, &info);
   if(flags & 1) return info;
diff --git a/std/container/items.c b/std/container/items.c
index c27736f..d581425 100644
--- a/std/container/items.c
+++ b/std/container/items.c
@@ -44,7 +44,7 @@
   Set(P_ITEMS,({}));
   Set(P_ITEMS,SECURED,F_MODE_AS);
   
-  OBJECTD->QueryObject();  // querying general objects
+  ({void})OBJECTD->QueryObject();  // querying general objects
 }
 
 protected void create_super()
@@ -121,7 +121,7 @@
   
   if(objectp(ob))
   {
-    ob->move(ME,M_NOCHECK|M_NO_ATTACK);
+    ({int})ob->move(ME,M_NOCHECK|M_NO_ATTACK);
     // mit Absicht keine Pruefung aufs Move, wenns nicht geht, solls 2s
     // spaeter auf der Ebene buggen, weil praktisch niemand im create() das
     // Ergebnis vom AddItem() prueft.
@@ -160,14 +160,14 @@
 
     foreach(object o : inv)
     {
-      o->remove(1);
+      ({int})o->remove(1);
       if(objectp(o))
       {
         destruct(o);
       }
     }
 
-    ob->remove(1);
+    ({int})ob->remove(1);
 
     if(ob)
     {
@@ -212,12 +212,12 @@
   {
     foreach(string fn: &filename)
     {
-      fn=master()->make_path_absolute(fn);
+      fn=({string})master()->make_path_absolute(fn);
     }
   }
   else
   {
-    filename=master()->make_path_absolute( filename );
+    filename=({string})master()->make_path_absolute( filename );
   }
   
   SetProp(P_ITEMS,filter(items, #'ri_filter/*'*/,filename));
@@ -248,7 +248,7 @@
       if(objectp(item[RITEM_OBJECT]) &&
         environment(item[RITEM_OBJECT])!=ME)
       {
-        item[RITEM_OBJECT]->move(ME,M_GO|M_NO_ATTACK);
+        ({int})item[RITEM_OBJECT]->move(ME,M_GO|M_NO_ATTACK);
         break;
       }
       
@@ -272,7 +272,7 @@
         ob=clone_object(file);
       }
 
-      ob->move(ME,M_NOCHECK|M_NO_ATTACK);
+      ({int})ob->move(ME,M_NOCHECK|M_NO_ATTACK);
       break;
   }
   
diff --git a/std/container/light.c b/std/container/light.c
index 24a2bf4..2b34de8 100644
--- a/std/container/light.c
+++ b/std/container/light.c
@@ -78,7 +78,7 @@
 
   // eigenes P_LIGHT und P_TOTAL_LIGHT der enthaltenen Objekte verrechnen
   int intlight = add_light_sources(
-      all_inventory()->QueryProp(P_TOTAL_LIGHT) + ({QueryProp(P_LIGHT)}));
+      ({int*})all_inventory()->QueryProp(P_TOTAL_LIGHT) + ({QueryProp(P_LIGHT)}));
   // P_INT_LIGHT (gerundet) abspeichern
   Set(P_INT_LIGHT, intlight, F_VALUE);
 
diff --git a/std/container/restrictions.c b/std/container/restrictions.c
index 30b8df1..68329df 100644
--- a/std/container/restrictions.c
+++ b/std/container/restrictions.c
@@ -111,7 +111,7 @@
 public int MayAddObject( object ob )
 {
     if (ob) {
-        if ( !ob->short() )
+        if ( !({string})ob->short() )
             return 1; // invis-Objekte duerfen immer
         
         if ( ob == ME || environment(ob) == ME)
@@ -162,7 +162,7 @@
         // Container kann Gewicht nicht mehr aufnehmen
         return -1;
     
-    if ( aw && ENV()->MayAddWeight(aw) < 0 )
+    if ( aw && ({int})ENV()->MayAddWeight(aw) < 0 )
         // Umgebung des Containers kann Gewicht nicht mehr aufnehmen
         return -2;
     
@@ -290,7 +290,7 @@
            case "eigenes":
            case "meins":
                if (objectp(haufen=present("\nhaufen "+
-                     this_player()->name(WEM)))) {
+                     ({string})this_player()->name(WEM)))) {
                   obs = all_inventory(haufen);
                }
                // kein break;, Fall-through!
@@ -384,7 +384,7 @@
            case "meins":
            case "alles eigene":
                if (objectp(haufen=present("\nhaufen "+
-                       this_player()->name(WEM)))) {
+                       ({string})this_player()->name(WEM)))) {
                   obs = all_inventory(haufen);
                }
                // kein break;, Fall-through!
@@ -449,7 +449,7 @@
                // bestimmten ID (im Gegensatz zu "alles", "jede waffe" etc.)
                // soll ein Item gefunden werden, auch wenn die Short 0 ist
                // (unsichtbar, aber interagierbar).
-               else if ( ob && ob != ME && !ob->QueryProp(P_INVIS) )
+               else if ( ob && ob != ME && !({int})ob->QueryProp(P_INVIS) )
                    erg += ({ ob });   //Normalfall: einzelne ID
 
                continue;
diff --git a/std/container/vitems.c b/std/container/vitems.c
index ad86d52..ca50dc2 100644
--- a/std/container/vitems.c
+++ b/std/container/vitems.c
@@ -57,10 +57,10 @@
     // Es wird auch zerstoert, wenn das genommene Objekt gerade im Raum
     // rumliegt (weil Spieler es hat fallen lassen etc.)
     if (vitems[key, VI_OBJECT])
-        vitems[key, VI_OBJECT]->remove(1);
+        ({int})vitems[key, VI_OBJECT]->remove(1);
     if (vitems[key, VI_LAST_OBJ]
         && environment(vitems[key, VI_LAST_OBJ]) == this_object())
-        vitems[key, VI_LAST_OBJ]->remove(1);
+        ({int})vitems[key, VI_LAST_OBJ]->remove(1);
 
     m_delete(vitems, key);
     SetProp(P_VITEMS, vitems);
@@ -123,39 +123,39 @@
     switch(k)
     {
       case P_READ_DETAILS:
-        if (reset_prop) ob->RemoveReadDetail(0);
+        if (reset_prop) ({void})ob->RemoveReadDetail(0);
         walk_mapping(v, "AddReadDetail", ob);
         break;
       case P_DETAILS:
-        if (reset_prop) ob->RemoveDetail(0);
+        if (reset_prop) ({void})ob->RemoveDetail(0);
         walk_mapping(v, "AddDetail", ob);
         break;
       case P_SMELLS:
-        if (reset_prop) ob->RemoveSmells(0);
+        if (reset_prop) ({void})ob->RemoveSmells(0);
         walk_mapping(v, "AddSmells", ob);
         break;
       case P_SOUNDS:
-        if (reset_prop) ob->RemoveSounds(0);
+        if (reset_prop) ({void})ob->RemoveSounds(0);
         walk_mapping(v, "AddSounds", ob);
         break;
       case P_TOUCH_DETAILS:
-        if (reset_prop) ob->RemoveTouchDetail(0);
+        if (reset_prop) ({void})ob->RemoveTouchDetail(0);
         walk_mapping(v, "AddTouchDetail", ob);
         break;
       case P_IDS:
-        if (reset_prop) ob->SetProp(P_IDS, v);
-        else ob->AddId(v);
+        if (reset_prop) ({string*})ob->SetProp(P_IDS, v);
+        else ({void})ob->AddId(v);
       case P_CLASS:
-        if (reset_prop) ob->SetProp(P_CLASS, v);
-        else ob->AddClass(v);
+        if (reset_prop) ({string*})ob->SetProp(P_CLASS, v);
+        else ({void})ob->AddClass(v);
       case P_ADJECTIVES:
-        if (reset_prop) ob->SetProp(P_ADJECTIVES, v);
-        else ob->AddAdjective(v);
+        if (reset_prop) ({string*})ob->SetProp(P_ADJECTIVES, v);
+        else ({void})ob->AddAdjective(v);
         break;
 
       // Alle anderen Properties stumpf setzen.
       default:
-        ob->SetProp(k, v);
+        ({mixed})ob->SetProp(k, v);
     }
   }
 }
@@ -188,13 +188,13 @@
     if (path)
     {
       obj=clone_object(path);
-      obj->SetAutoObject(1);
+      ({int})obj->SetAutoObject(1);
       if (mappingp(props))
         configure_object(obj, props);
       // Schatten erzeugen, welcher die Beschreibung des Objekts im Container nach
       // den Props in shadow_props abaendert.
       sh = clone_object("/obj/vitem_shadow");
-      sh->set_shadow(obj, shadow_props);
+      ({void})sh->set_shadow(obj, shadow_props);
     }
     else
     {
@@ -227,7 +227,7 @@
 {
   foreach(object o : GetVItemClones())
   {
-    if (o->id(complex_desc))
+    if (({int})o->id(complex_desc))
       return o;
   }
   return 0;
@@ -297,7 +297,7 @@
         // wird es immer refresht...
         // Zu beachten: es soll auch nicht hier in diesem Container rumliegen
         // nach dem Heimbewegen, also zerstoeren!
-        last_obj->remove(1);
+        ({int})last_obj->remove(1);
         // Fallthrough
       case VI_REFRESH_REMOVE:
         // wenn nicht mehr als vItem hier ist (d.h. auch wenn es hier im Raum
diff --git a/std/corpse.c b/std/corpse.c
index 5025ad8..05d6424 100644
--- a/std/corpse.c
+++ b/std/corpse.c
@@ -95,8 +95,8 @@
     SetProp( P_SHORT, "Die Leiche "+ _name );
     SetProp( P_LONG, "Du siehst die sterblichen Ueberreste "+ _name + ".\n" );
     _decay = 4;
-    SetProp( P_ORIG_NAME, to_string(ob->name(RAW))      );
-    SetProp( P_PILE_NAME, to_string(ob->name(WEM))      );
+    SetProp( P_ORIG_NAME, ({string})ob->name(RAW)      );
+    SetProp( P_PILE_NAME, ({string})ob->name(WEM)      );
     AddId( "\nleiche "+ QueryProp(P_PILE_NAME)          );
     SetProp( P_KILLER, ({<object|string>})funcall(cl, P_KILLER));
     SetProp( P_ATTRIBUTES,    ({mapping})funcall(cl, P_ATTRIBUTES));
@@ -256,10 +256,10 @@
   heal = heal * wieviel / nahrung_gesamt;
   if ( ( heal ) < 0 ) {
     // 
-    this_player()->do_damage( random(-heal), this_object() );
+    ({int})this_player()->do_damage( random(-heal), this_object() );
     msg = "Buah, diese Leiche war zweifellos nicht besonders gesund.\n";
   } else {
-    this_player()->heal_self( random(heal) );
+    ({int})this_player()->heal_self( random(heal) );
     msg = "Hmmm, lecker!\n";
   }
   return msg;
@@ -274,7 +274,7 @@
     if ( !str || !id(str) )
         return 0;
 
-    if (this_player()->QueryProp(P_GHOST))
+    if (({int})this_player()->QueryProp(P_GHOST))
     {
 	_notify_fail("Das wuerde durch Dich hindurch fallen.\n");
 	return 0;
@@ -290,7 +290,7 @@
       write("Du bekommst von der Leiche nicht einen Bissen mehr runter.\n");
     } else if (gegessen >= nahrung_aktuell) {
       // spieler kann die gesamte Leiche essen, also entfernen.
-      this_player()->eat_food(nahrung_aktuell);
+      ({int})this_player()->eat_food(nahrung_aktuell);
       // Verdammt. eat_food() kann TP umgebracht haben und im Falle eines NPC
       // ist der dann weg.
       if (objectp(this_player())) {
@@ -303,7 +303,7 @@
       remove();
     } else {
       // Auch teilweise Verspeisung ist moeglich, nahrung_aktuell anpassen
-      this_player()->eat_food(gegessen);
+      ({int})this_player()->eat_food(gegessen);
       if (objectp(this_player())) {
 	write(mampf_heilung(gegessen)+"Leider bist Du nicht in der Lage,"
                " alles aufzuessen.\n");
@@ -342,15 +342,15 @@
     switch ( str[0] )
         {
         case ':':
-            "/std/corpse"->ChannelMessageJeer( PL, str[1..], MSG_EMOTE );
+            ({void})"/std/corpse"->ChannelMessageJeer( PL, str[1..], MSG_EMOTE );
             break;
           
         case ';':
-            "/std/corpse"->ChannelMessageJeer( PL, str[1..], MSG_GEMOTE );
+            ({void})"/std/corpse"->ChannelMessageJeer( PL, str[1..], MSG_GEMOTE );
             break;
           
         default:
-            "/std/corpse"->ChannelMessageJeer( PL, str, MSG_SAY );
+            ({void})"/std/corpse"->ChannelMessageJeer( PL, str, MSG_SAY );
             break;
         }
   
@@ -364,7 +364,7 @@
 void ChannelMessageJeer( mixed sender, string text, int flag )
 {
   if (member(inherit_list(previous_object()),CORPSE_OBJ)>-1)
-      CHMASTER->send( "Moerder", sender, text, flag );
+      ({int})CHMASTER->send( "Moerder", sender, text, flag );
 }
 
 
@@ -703,7 +703,7 @@
 		      if ( stringp(msg) )
 			  msg = sprintf( msg, killer || "Moerder" );
 
-                      CHMASTER->send( "Moerder", this_object(), funcall(msg) );
+                      ({int})CHMASTER->send( "Moerder", this_object(), funcall(msg) );
 
                       rueck = previous_object(i);
                   }
@@ -717,12 +717,12 @@
 }
 
 void transform_into_pile() {
-	if( environment()->QueryProp(P_PREVENT_PILE) ) return;
+	if( ({int})environment()->QueryProp(P_PREVENT_PILE) ) return;
 	object* inv = all_inventory();
 	if( sizeof(inv)<2 ) return;
 	object p = clone_object(PILE_OBJ);
 	filter_objects( inv, "move", p, M_SILENT | M_NOCHECK );
-	p->move( environment(), M_SILENT | M_NOCHECK );
+	({int})p->move( environment(), M_SILENT | M_NOCHECK );
 }
 
 // Verhindert die Zerstoerung im reset() von Containern, die mit
diff --git a/std/gilden_ob.c b/std/gilden_ob.c
index 7b0a565..3435ba4 100644
--- a/std/gilden_ob.c
+++ b/std/gilden_ob.c
@@ -57,7 +57,7 @@
   if (intp(cond)) {
     _notify_fail("Dir fehlt noch die noetige Erfahrung. "+
                 "Komm spaeter wieder.\n");
-    return (this_player()->QueryProp(P_XP)>=cond);
+    return (({int})this_player()->QueryProp(P_XP)>=cond);
   }
   if (mappingp(cond)) {
     res=check_restrictions(this_player(),cond);
@@ -98,19 +98,19 @@
   if (mappingp(ti))
     ti=ti[lv];
   if (stringp(ti))
-    pl->SetProp(P_GUILD_TITLE,ti);
+    ({string})pl->SetProp(P_GUILD_TITLE,ti);
   
   // Spielertitel nullen, damit der Gildentitel angezeigt wird.
   if (!IS_SEER(pl) && !FAO_HAS_TITLE_GIFT(pl))
-      pl->SetProp(P_TITLE,0);
+      ({string})pl->SetProp(P_TITLE,0);
 }
 
 void do_advance() {
   int lv;
 
-  lv=this_player()->QueryProp(P_GUILD_LEVEL)+1;
+  lv=({int})this_player()->QueryProp(P_GUILD_LEVEL)+1;
   if (lv<1) lv=1;
-  this_player()->SetProp(P_GUILD_LEVEL,lv);
+  ({int})this_player()->SetProp(P_GUILD_LEVEL,lv);
   adjust_title(this_player());
 }
 
@@ -135,7 +135,7 @@
   if (erg=({int})GUILDMASTER->beitreten()) {
     if (erg<0)
       return erg;
-    if (!(this_player()->QueryProp(P_GUILD_LEVEL)))
+    if (!(({int})this_player()->QueryProp(P_GUILD_LEVEL)))
       try_advance(); // Level 1 wird sofort vergeben
     return 1;
   }
@@ -369,7 +369,7 @@
   spell=lower_case(spell);
   if (!(ski=QuerySpell(spell)))
     return 0;
-  if (pl->QuerySkill(spell)) {
+  if (({mapping})pl->QuerySkill(spell)) {
     _notify_fail("Du kannst diesen Spruch doch schon!\n");
     return 0;
   }
@@ -384,7 +384,7 @@
   write("Du lernst einen neuen Zauberspruch.\n");
   if (!(diff=GetFValueO(SI_DIFFICULTY,ski,pl)))
     diff=GetFValueO(SI_SPELLCOST,ski,pl);
-  pl->ModifySkill(spell,abil,diff);
+  ({void})pl->ModifySkill(spell,abil,diff);
   return 1;
 }
 
@@ -406,7 +406,7 @@
   skill=capitalize(skill);
   if (!(ski=QuerySkill(skill)))
     return 0;
-  if (pl->QuerySkill(skill)) {
+  if (({mapping})pl->QuerySkill(skill)) {
     _notify_fail("Du hast diese Faehigkeit doch schon!\n");
     return 0;
   }
@@ -421,7 +421,7 @@
   if (abil<-MAX_ABILITY) abil=-MAX_ABILITY;
   write("Du erwirbst eine neue Faehigkeit.\n");
   diff=GetFValueO(SI_DIFFICULTY,ski,pl);
-  pl->ModifySkill(skill,abil,diff);
+  ({void})pl->ModifySkill(skill,abil,diff);
   return 1;
 }
 
diff --git a/std/lightsource.c b/std/lightsource.c
index 129121d..f45d510 100644
--- a/std/lightsource.c
+++ b/std/lightsource.c
@@ -123,7 +123,7 @@
       // Der Zweck heiligt ja bekanntlich die Mittel. ;-)
       //
       // Tiamak
-      env->_set_last_content_change();
+      ({int})env->_set_last_content_change();
   call_time = (fuel < CALL_OUT_TIME)? fuel : CALL_OUT_TIME ;
   call_out( "out_of_fuel", call_time ) ;
   if( ({int})PL->QueryProp(P_PLAYER_LIGHT) == 1 )
@@ -171,7 +171,7 @@
       // Der Zweck heiligt ja bekanntlich die Mittel. ;-)
       //
       // Tiamak
-      env->_set_last_content_change();
+      ({int})env->_set_last_content_change();
   if ( ({int})this_player()->QueryProp(P_PLAYER_LIGHT) == 0 )
   {
     write( "Es wird dunkel.\n" ) ;
@@ -196,6 +196,7 @@
   if( !lighted )
     return FALSE ;
 
+
   if( ( ti = remove_call_out( "out_of_fuel" ) ) == -1 )
     ti = 0 ;
 
@@ -204,7 +205,7 @@
   env=this_object();
   while (objectp(env=environment(env)))
       // Kommentar siehe oben ;^)
-      env->_set_last_content_change();
+      ({int})env->_set_last_content_change();
   if( fuel <= 0 ) test_remove() ;
   return TRUE ;
 }
@@ -224,7 +225,7 @@
   env=this_object();
   while (objectp(env=environment(env)))
       // Immer noch nicht wirklich sauber. Aber Begruendung siehe oben.
-      env->_set_last_content_change();
+      ({int})env->_set_last_content_change();
 
   if (environment())
   {
@@ -232,11 +233,11 @@
     {
       inv=(users() & all_inventory(environment(environment())))-({ environment() });
       for (i=sizeof(inv)-1; i>=0; i--) 
-        if (inv[i]->QueryProp(P_PLAYER_LIGHT)<=0)
-          tell_object(inv[i], "Es wird dunkel, als " + environment()->name(WESSEN) +
+        if (({int})inv[i]->QueryProp(P_PLAYER_LIGHT)<=0)
+          tell_object(inv[i], "Es wird dunkel, als " + ({string})environment()->name(WESSEN) +
             " " + QueryProp(P_NAME) + " erlischt.\n" ) ;
         else tell_object(inv[i], CAP( name( WER, 0 ) ) + " erlischt.\n" ) ;
-      if (environment()->QueryProp(P_PLAYER_LIGHT)<=0)
+      if (({int})environment()->QueryProp(P_PLAYER_LIGHT)<=0)
         tell_object(environment(), 
           CAP( name( WER, 1 ) ) + " erlischt, und es wird dunkel.\n" ) ;
       else tell_object(environment(), CAP( name( WER, 1 ) ) + " erlischt.\n" ) ;    
@@ -245,7 +246,7 @@
     {
       inv=(users() & all_inventory(environment()));
       for (i=sizeof(inv)-1; i>=0; i--) 
-        if (inv[i]->QueryProp(P_PLAYER_LIGHT)<=0)
+        if (({int})inv[i]->QueryProp(P_PLAYER_LIGHT)<=0)
           tell_object(inv[i], "Es wird dunkel, als " + name(WER,1)
           + " erlischt.\n" ) ;
         else tell_object(inv[i], CAP( name( WER, 0 ) ) + " erlischt.\n" ) ;
diff --git a/std/living/life.c b/std/living/life.c
index 7feb2c2..554a702 100644
--- a/std/living/life.c
+++ b/std/living/life.c
@@ -140,7 +140,7 @@
   // ---------------------------------------
   //                2
   //
-  object *inv = enemy->TeamMembers();
+  object *inv = ({object*})enemy->TeamMembers();
   if ( pointerp(inv) )
   {
     present_enemies=m_allocate(sizeof(inv), 1);
@@ -179,7 +179,7 @@
   }
   if ( !total_damage )
   {
-    enemy->AddExp(exp_to_give);
+    ({int})enemy->AddExp(exp_to_give);
   }
   else
   {
@@ -216,15 +216,15 @@
       && living(enemy)
       && !QueryProp(P_ENABLE_IN_ATTACK_OUT))
   {
-    al=time()-enemy->QueryProp(P_LAST_MOVE);
+    al=time()-({int})enemy->QueryProp(P_LAST_MOVE);
     if (al<3)      // Erste Kampfrunde nach Betreten des Raumes?
       dam/=(4-al); // Gegen Rein-Feuerball-Raus-Taktik
   }
 
   if ( QueryProp(P_GHOST) || QueryProp(P_NO_ATTACK) || (dam<=0)
       || ( objectp(enemy)
-          && ( enemy->QueryProp(P_GHOST)
-              || enemy->QueryProp(P_NO_ATTACK) ) ) )
+          && ( ({int})enemy->QueryProp(P_GHOST)
+              || ({int|string})enemy->QueryProp(P_NO_ATTACK) ) ) )
     return 0;
 
   hit_point = QueryProp(P_HP)-dam;
@@ -232,7 +232,7 @@
   if ( QueryProp(P_XP) && objectp(enemy) )
   {
     if ( !QueryProp(P_NO_XP) )
-      enemy->AddExp(dam*({int})QueryProp(P_TOTAL_WC)/10);
+      ({int})enemy->AddExp(dam*({int})QueryProp(P_TOTAL_WC)/10);
   }
 
   if (living(enemy)) {
@@ -246,7 +246,7 @@
       // nur wenn gegner NPC ist und noch nicht drinsteht: Daten aus
       // P_HELPER_NPC auswerten
       if (!member(enemy_damage,enemy) && !query_once_interactive(enemy)) {
-          mixed helper = enemy->QueryProp(P_HELPER_NPC);
+          mixed helper = ({mixed})enemy->QueryProp(P_HELPER_NPC);
           if (pointerp(helper) && objectp(helper[0]))
               enemy_damage[enname,1] = helper[0];
       }
@@ -260,7 +260,7 @@
     //TODO: Warum nicht das ganze Zeug ins die() verlegen?
     if ( enemy )
     {
-      enemy->StopHuntFor(ME,1);
+      ({int})enemy->StopHuntFor(ME,1);
       if ( !QueryProp(P_NO_XP) )
         DistributeExp(enemy,QueryProp(P_XP)/100);
       if ( !query_once_interactive(ME) )
@@ -268,13 +268,13 @@
 	    "[%s] %s, XP: %d, HP*WC: %d, Killer: %s\n",
 	    dtime(time()), object_name(ME), (QueryProp(P_XP)/100),
                   QueryProp(P_TOTAL_WC)*QueryProp(P_MAX_HP)/10,
-                  enemy->name()||"NoName" ));
-      al = QueryProp(P_ALIGN)/50 + enemy->QueryProp(P_ALIGN)/200;
+                  ({string})enemy->name()||"NoName" ));
+      al = QueryProp(P_ALIGN)/50 + ({int})enemy->QueryProp(P_ALIGN)/200;
       if (al>20)
         al=20;
       else if(al<-20)
         al=-20;
-      enemy->SetProp(P_ALIGN,enemy->QueryProp(P_ALIGN)-al);
+      ({int})enemy->SetProp(P_ALIGN,({int})enemy->QueryProp(P_ALIGN)-al);
     }
     SetProp(P_KILLER, enemy);
     
@@ -296,10 +296,10 @@
     // Pruefung auf zerstoerte Objekte, da einige sich evtl. im NotifyPlayerDeath() 
     // zerstoeren.
    while ( i && get_eval_cost() > 300000 )
-        if ( objectp(obs[--i]) && !obs[i]->QueryProp(P_NEVERDROP) )
+        if ( objectp(obs[--i]) && !({int})obs[i]->QueryProp(P_NEVERDROP) )
         // Jetzt wird's noch etwas teurer mit catch() - aber manche Sachen
         // duerfen einfach nicht buggen
-            catch( obs[i]->move( dest, flag );publish );
+            catch( ({int})obs[i]->move( dest, flag );publish );
 
     if ( i > 0 )
         // Zuviel Rechenzeit verbraten, es muessen noch Objekte bewegt werden
@@ -359,7 +359,7 @@
     return 0;
 
   while (killer && !query_once_interactive(killer))
-    killer = killer->QueryUser();
+    killer = ({object})killer->QueryUser();
 
   return killer;
 }
@@ -374,9 +374,9 @@
   mixed *fr;
   int i,j,sz;
 
-  if ( pointerp(obs=pl->TeamMembers()) && (member(obs,pl)>=0) )
+  if ( pointerp(obs=({object*})pl->TeamMembers()) && (member(obs,pl)>=0) )
   {
-    if ( !pointerp(fr=pl->PresentTeamRows())
+    if ( !pointerp(fr=({mixed})pl->PresentTeamRows())
         || !sizeof(fr)
         || !pointerp(fr=fr[0])) // Erste Reihe des Teams
       fr=({});
@@ -413,11 +413,11 @@
         && query_idle(ob)<600  // gegen Leute die sich nur mitschleppen lassen
         && environment(ob)==environment(pl) // Nur anwesende Teammitglieder
         && !IS_LEARNER(ob)
-//        && !ob->QueryProp(P_TESTPLAYER)
-        && !(SCOREMASTER->HasKill(ob,ME)) )
-      return SCOREMASTER->GiveKill(ob,npcnum),ob;
+//        && !({int|string})ob->QueryProp(P_TESTPLAYER)
+        && !(({int})SCOREMASTER->HasKill(ob,ME)) )
+      return ({int})SCOREMASTER->GiveKill(ob,npcnum),ob;
 
-  return SCOREMASTER->GiveKill(pl,npcnum),pl;
+  return ({int})SCOREMASTER->GiveKill(pl,npcnum),pl;
 }
 
 // zum ueberschreiben in Spielern
@@ -452,7 +452,7 @@
             && intp(res[0]) && time()<res[0]
             && objectp(res[1]) && stringp(res[2]) )
         {
-            if ( res = call_other( res[1], res[2], poisondeath ) ) {
+            if ( res = ({mixed})call_other( res[1], res[2], poisondeath ) ) {
               SetProp(P_KILLER,0);
               return;
             }
@@ -503,12 +503,12 @@
                                        ctime(time()),
                                        capitalize(getuid(killer)),
                                        query_wiz_level(killer),
-                                       killer->QueryProp(P_LEVEL),
+                                       ({int})killer->QueryProp(P_LEVEL),
                                        capitalize(getuid(ME)),
                                        query_wiz_level(ME),
                                        QueryProp(P_LEVEL) ) );
 
-          killer->SetProp( P_KILLS, -1 );
+          ({int})killer->SetProp( P_KILLS, -1 );
       }
     }
 
@@ -521,18 +521,18 @@
 
     if ( killer && query_once_interactive(killer) )
     {
-      if (stringp(res=killer->QueryProp(P_GUILD))
+      if (stringp(res=({string})killer->QueryProp(P_GUILD))
           && objectp(res=find_object("/gilden/"+res)))
-        res->NPC_Killed_By(killer);
+        ({void})res->NPC_Killed_By(killer);
 
       if (environment())
-          environment()->NPC_Killed_By(killer);
+          ({void})environment()->NPC_Killed_By(killer);
 
       res = QueryProp(P_XP);
       res = (res < SCORE_LOW_MARK) ? 0 : ((res > SCORE_HIGH_MARK) ? 2 : 1);
       if ( !QueryProp(P_NO_SCORE) && !IS_LEARNER(killer) &&
            // !killer->QueryProp(P_TESTPLAYER) &&
-           pointerp( res = SCOREMASTER->QueryNPC(res)) )
+           pointerp( res = ({mixed})SCOREMASTER->QueryNPC(res)) )
         GiveKillScore( killer, res[0] );
     }
   }
@@ -570,8 +570,8 @@
   else
   // sonst in die Leiche legen.
   {
-      corpse->Identify(ME);
-      corpse->move( environment(), M_NOCHECK|M_SILENT );
+      ({void})corpse->Identify(ME);
+      ({int})corpse->move( environment(), M_NOCHECK|M_SILENT );
       // Magier oder Testspieler behalten ihre Ausruestung.
       // Sonst kaemen u.U. Spieler an Magiertools etc. heran
       if ( !(IS_LEARNER(ME) || (tmp = Query(P_TESTPLAYER)) &&
@@ -585,7 +585,7 @@
   if ( query_once_interactive(ME) ) {
       Set( P_DEADS, Query(P_DEADS) + 1 );
       // Spieler-Tod-event ausloesen
-      EVENTD->TriggerEvent(EVT_LIB_PLAYER_DEATH, ([
+      ({int})EVENTD->TriggerEvent(EVT_LIB_PLAYER_DEATH, ([
       E_OBJECT: ME, E_PLNAME: getuid(ME),
       E_ENVIRONMENT: environment(), E_TIME: time(),
       P_KILLER: QueryProp(P_KILLER),
@@ -617,8 +617,8 @@
             P_RACE: QueryProp(P_RACE),
             P_CLASS: QueryProp(P_CLASS),
             ]);
-      EVENTD->TriggerEvent(EVT_LIB_NPC_DEATH(""), data);
-      EVENTD->TriggerEvent(
+      ({int})EVENTD->TriggerEvent(EVT_LIB_NPC_DEATH(""), data);
+      ({int})EVENTD->TriggerEvent(
           EVT_LIB_NPC_DEATH(load_name(ME)), data);
   }
 
@@ -768,11 +768,11 @@
     log_file("REDUCE_HP", name()+" by ");
     if(!this_player()) log_file("REDUCE_HP","?\n");
     else {
-      log_file("REDUCE_HP",this_player()->name());
+      log_file("REDUCE_HP",({string})this_player()->name());
       o=previous_object();
       if (o)
         log_file("REDUCE_HP", " " + object_name(o) + ", " +
-                 o->name(WER,0) + " (" + creator(o) + ")\n");
+                 ({string})o->name(WER,0) + " (" + creator(o) + ")\n");
       else
         log_file("REDUCE_HP", " ??\n");
     }
@@ -1023,10 +1023,10 @@
         // Gilde und Environment informieren ueber Alkoholauswirkung.
         if ( stringp(gilde = QueryProp(P_GUILD))
              && objectp(ob = find_object( "/gilden/" + gilde )) )
-            ob->InformAlcoholEffect( ME, n, ALC_EFFECT_AREA_GUILD );
+            ({void})ob->InformAlcoholEffect( ME, n, ALC_EFFECT_AREA_GUILD );
         
         if ( environment() )
-            environment()->InformAlcoholEffect( ME, n, ALC_EFFECT_AREA_ENV );
+            ({void})environment()->InformAlcoholEffect( ME, n, ALC_EFFECT_AREA_ENV );
     }
     
     // Alkohol abbauen und etwas extra heilen, falls erlaubt.
diff --git a/std/living/moving.c b/std/living/moving.c
index 78a1cf5..52d2b80 100644
--- a/std/living/moving.c
+++ b/std/living/moving.c
@@ -51,7 +51,7 @@
     return;
   
   SetProp(P_PURSUERS,({ pur[0], pur[1]+({ob})-({0}) }));
-  ob->_SetPursued(ME);
+  ({void})ob->_SetPursued(ME);
 }
 
 public void RemovePursuer(object ob)
@@ -63,7 +63,7 @@
   {
     pur[1]-=({ob,0});
     if (ob)
-      ob->_RemovePursued(ME);
+      ({void})ob->_RemovePursued(ME);
     if (!pur[0]&&!sizeof(pur[1]))
       pur=0;
     SetProp(P_PURSUERS,pur);
@@ -78,7 +78,7 @@
     pur=({0,({})});
   else
     if (objectp(pur[0]))
-      pur[0]->RemovePursuer(ME);
+      ({void})pur[0]->RemovePursuer(ME);
   pur[0]=ob;
   pur[1]-=({0});
   Set(P_PURSUERS,pur);
@@ -100,10 +100,10 @@
 
 private void kampfende( object en ) {
   if (!objectp(en)) return;
-  tell_object( ME, capitalize(en->name()) +
+  tell_object( ME, capitalize(({string})en->name()) +
       " ist jetzt hinter Dir her.\n" );
   tell_object( en, "Du verfolgst jetzt " + name(WEN) + ".\n" );      
-  en->InsertSingleEnemy(ME);
+  ({int})en->InsertSingleEnemy(ME);
 }
 
 private int _is_learner(object pl) {
@@ -120,9 +120,9 @@
   if ((method&M_NOCHECK)) {
       // erst PreventLeaveLiving() rufen...
       if(environment())        
-          environment()->PreventLeaveLiving(this_object(), dest);
+          ({int})environment()->PreventLeaveLiving(this_object(), dest);
       // dann PreventInsertLiving() im Ziel-Env.
-      dest->PreventInsertLiving(this_object());
+      ({int})dest->PreventInsertLiving(this_object());
       // und raus...
       return(0);
   }
@@ -139,17 +139,17 @@
   // alte und neue Umgebung auf NO_TPORT pruefen.
   if ( (method & M_TPORT) ) {
     if ( environment() &&
-        (environment()->QueryProp(P_NO_TPORT) & (NO_TPORT_OUT|NO_TPORT)) )
+        (({int})environment()->QueryProp(P_NO_TPORT) & (NO_TPORT_OUT|NO_TPORT)) )
           return ME_CANT_TPORT_OUT;
-    else if ( dest->QueryProp(P_NO_TPORT) & (NO_TPORT_IN|NO_TPORT) )
+    else if ( ({int})dest->QueryProp(P_NO_TPORT) & (NO_TPORT_IN|NO_TPORT) )
           return ME_CANT_TPORT_IN;
   }
 
   // erst PreventLeaveLiving() testen...
-  if( environment() && environment()->PreventLeaveLiving(this_object(), dest))
+  if( environment() && ({int})environment()->PreventLeaveLiving(this_object(), dest))
       return ME_CANT_LEAVE_ENV;
   // dann PreventInsertLiving() im Ziel-Env
-  if (dest->PreventInsertLiving(this_object())) 
+  if (({int})dest->PreventInsertLiving(this_object())) 
       return ME_CANT_BE_INSERTED;
 
   return 0;
@@ -178,7 +178,7 @@
       && objectp(ME)
       && QueryProp(P_TEAM_AUTOFOLLOW)
       && objectp( enem = IsTeamLeader() ) )
-      enem->StartFollow(oldenv); // Teamverfolgung
+      ({void})enem->StartFollow(oldenv); // Teamverfolgung
 
 }
 
@@ -227,7 +227,7 @@
                     !catch(tmp=({int})call_other(vc,"QueryValidObject",fn);
                            publish) && tmp>0)) &&
                     !catch(load_object(fn);publish) )) &&
-                  (!interactive(ME) || !fn->QueryProp(P_NO_PLAYERS) || 
+                  (!interactive(ME) || !({int})fn->QueryProp(P_NO_PLAYERS) || 
                   (method & M_NOCHECK) || IS_LEARNER(ME) ||
                   (stringp(res = QueryProp(P_TESTPLAYER)) &&
                    IS_LEARNER( lower_case(res) ))) )
@@ -248,7 +248,7 @@
         if ( pointerp(res) && sizeof(res) >= 3
              && intp(res[0]) && time()<res[0]
              && objectp(res[1]) && stringp(res[2]) ){
-            if ( res = call_other( res[1], res[2], dest, method, direction,
+            if ( res = ({mixed})call_other( res[1], res[2], dest, method, direction,
                                    textout, textin ) ){
                 if ( pointerp(res) && sizeof(res) == 5 ){
                     dest = res[0];
@@ -352,7 +352,7 @@
             filter((QueryEnemies()[0] & all_inventory(oldenv))-({0}),
                 #'kampfende);
             // Bugs im exit() sind ohne catch() einfach mist.
-            catch(environment()->exit(ME, dest);publish);
+            catch(({void})environment()->exit(ME, dest);publish);
         }
     }
 
@@ -429,11 +429,11 @@
     if (objectp(follower) && environment(follower)!=env) {
       //meth=M_NOCHECK;
       meth=M_GO;
-      if (follower->Query(P_FOLLOW_SILENT))
+      if (({int})follower->Query(P_FOLLOW_SILENT))
           meth|=M_SILENT|M_NO_SHOW;
-      catch(r=follower->PreventFollow(env);publish);
+      catch(r=({int})follower->PreventFollow(env);publish);
       if (!r)
-          follower->move(env,meth);
+          ({int})follower->move(env,meth);
       else if (r==2)
           RemovePursuer(follower);
     }
@@ -446,9 +446,9 @@
   if (environment())
   {
     if ( objectp(team=Query(P_TEAM)) )
-      catch(team->RemoveMember(ME);publish);
+      catch(({int})team->RemoveMember(ME);publish);
 
-    environment()->NotifyRemove(ME);
+    ({void})environment()->NotifyRemove(ME);
   }
   destruct(ME);
   return 1;
diff --git a/std/living/skills.c b/std/living/skills.c
index b9b7bfe..f7077a6 100644
--- a/std/living/skills.c
+++ b/std/living/skills.c
@@ -116,14 +116,14 @@
       return 1; // Die sollten problemlos aendern duerfen
 
     if ( file_size("/gilden/access_rights")>0
-       && call_other("/gilden/access_rights",
+       && ({int})call_other("/gilden/access_rights",
                     "access_rights",
                     getuid(previous_object()),
                     gilde+".c"))
       return 1; // Setzendes Objekt kommt vom Gildenprogrammierer
 
     if ( file_size("/gilden/"+gilde+".c")>0
-        && call_other("/gilden/"+gilde,
+        && ({int})call_other("/gilden/"+gilde,
                       "valid_setskills",
                         explode(fn,"#")[0]) )
       return 1; // Die Gilde selber kann Ausnahmen zulassen
@@ -140,7 +140,7 @@
     if ( IS_ARCH(this_interactive()) )
       return 1; // Erzmagier duerfen immer aendern
 
-    if ( call_other("/gilden/access_rights",
+    if ( ({int})call_other("/gilden/access_rights",
                     "access_rights",
                     getuid(this_interactive()),
                     gilde+".c"))
@@ -159,7 +159,7 @@
             this_interactive(),
             gilde,
             ( this_interactive() ? query_verb() + " " +
-                this_interactive()->_unparsed_args() : "") ));
+                ({string})this_interactive()->_unparsed_args() : "") ));
 
   return 0;
 }
diff --git a/std/player/skills.c b/std/player/skills.c
index cdac73e..390ad77 100644
--- a/std/player/skills.c
+++ b/std/player/skills.c
@@ -47,7 +47,7 @@
   foreach(string guild:
       ({string *})call_other(GUILDMASTER,"QueryProp",P_VALID_GUILDS))
   {
-    if(catch(act=call_other("/gilden/"+guild,"QueryProp",
+    if(catch(act=({mapping})call_other("/gilden/"+guild,"QueryProp",
         P_GUILD_DEACTIVATE_SKILLS); publish ))
         log_file("WEAPON_SKILLS", sprintf ("%s: Gilde nicht ladbar: "
               +"TP: %O, TI: %O, PO: %O, Gilde: %s\n", dtime(time()),
@@ -223,10 +223,10 @@
         WT_SPEAR : 6,
         WT_CLUB  : 1,
         WT_WHIP  : 9,
-        WT_STAFF : 7])[sinfo[P_WEAPON]->QueryProp(P_WEAPON_TYPE)];
+        WT_STAFF : 7])[({string})sinfo[P_WEAPON]->QueryProp(P_WEAPON_TYPE)];
       
 
-  val = sinfo[SI_SKILLABILITY]*(sinfo[P_WEAPON]->QueryProp(P_WC)*
+  val = sinfo[SI_SKILLABILITY]*(({int})sinfo[P_WEAPON]->QueryProp(P_WC)*
                                 (w*QueryAttribute(A_DEX)+
                                  (10-w)*QueryAttribute(A_STR))/700)
         /MAX_ABILITY;
@@ -239,7 +239,7 @@
                                    previous_object(), val,
                                    QueryAttribute(A_DEX),
                                    QueryAttribute(A_STR), sinfo[P_WEAPON],
-                                   sinfo[P_WEAPON]->QueryProp(P_WC)));
+                                   ({int})sinfo[P_WEAPON]->QueryProp(P_WC)));
     val = 85;
   }
 
@@ -276,7 +276,7 @@
        || (!random(300) && sinfo[SI_SKILLABILITY]<MAX_ABILITY))
   {
          enemy=sinfo[SI_ENEMY];
-         if (objectp(enemy) && (enemy->QueryProp(P_XP)>0))
+         if (objectp(enemy) && (({int})enemy->QueryProp(P_XP)>0))
          {
            object ausbilder;
         //         log_file("humni/log_wurm","Haut: %s und zwar %s, mit xp %d\n",geteuid(this_object()),to_string(enemy),enemy->QueryProp(P_XP));
@@ -293,7 +293,7 @@
               object waf_aus,waf_azu;
 
               waf_azu=QueryProp(P_WEAPON);
-              waf_aus=call_other(ausbilder,"QueryProp",P_WEAPON);
+              waf_aus=({object})call_other(ausbilder,"QueryProp",P_WEAPON);
 
               //wt_azu=call_other(waf_azu,"QueryProp",P_WEAPON_TYPE);
               //wt_aus=call_other(waf_aus,"QueryProp",P_WEAPON_TYPE);
@@ -332,7 +332,7 @@
 { int abil,val;
 
   if (!mappingp(sinfo) || !dam || !objectp(sinfo[P_WEAPON]) ||
-      (sinfo[P_WEAPON]->QueryProp(P_SHOOTING_WC))<5)
+      (({int})sinfo[P_WEAPON]->QueryProp(P_SHOOTING_WC))<5)
     return 0;
 
   abil=sinfo[SI_SKILLABILITY]+sinfo[OFFSET(SI_SKILLABILITY)]; 
@@ -559,7 +559,7 @@
   if ( !t && query_once_interactive(this_object())
       && objectp(g=find_object("/gilden/"+gilde)) )
   {
-    g->adjust_title(this_object());
+    ({void})g->adjust_title(this_object());
     SetProp(P_TITLE,0);
 
     if ( !mappingp(titles=Query(P_GUILD_TITLE)) )
diff --git a/std/room/description.c b/std/room/description.c
index 9431d31..c1c3693 100644
--- a/std/room/description.c
+++ b/std/room/description.c
@@ -100,7 +100,7 @@
   string|int transparency;
 
   flags &= 3;
-  if( IS_LEARNER(viewer) && viewer->QueryProp( P_WANTS_TO_LEARN ) )
+  if( IS_LEARNER(viewer) && ({int})viewer->QueryProp( P_WANTS_TO_LEARN ) )
     descr = "[" + object_name(ME) + "]\n";
   else
     descr = "";
@@ -115,7 +115,7 @@
   }
   
   // ggf. Ausgaenge hinzufuegen.
-  if ( viewer->QueryProp(P_SHOW_EXITS) && (!QueryProp(P_HIDE_EXITS) 
+  if ( ({int})viewer->QueryProp(P_SHOW_EXITS) && (!QueryProp(P_HIDE_EXITS) 
 	|| pointerp(QueryProp(P_HIDE_EXITS))) )
     descr += GetExits(viewer) || "";
 
@@ -131,7 +131,7 @@
     if(stringp(transparency)) descr += transparency;
     else                   descr += "Ausserhalb siehst Du:\n";
 
-    descr += environment()->int_short(viewer,ME);
+    descr += ({string})environment()->int_short(viewer,ME);
   }
 
   return descr;
@@ -158,8 +158,8 @@
   if(IS_LEARNING(viewer))
     descr[<1..<2]=" [" + object_name(ME) + "]";
 
-  if ( ( viewer->QueryProp(P_SHOW_EXITS)
-         || ( environment(viewer) == ME && !viewer->QueryProp(P_BRIEF) ) )
+  if ( ( ({int})viewer->QueryProp(P_SHOW_EXITS)
+         || ( environment(viewer) == ME && !({int})viewer->QueryProp(P_BRIEF) ) )
        && (!QueryProp(P_HIDE_EXITS) || pointerp(QueryProp(P_HIDE_EXITS))) )
     descr += GetExits(viewer) || "";
 
diff --git a/std/room/gilde.c b/std/room/gilde.c
index 737dfc2..42f3b4c 100644
--- a/std/room/gilde.c
+++ b/std/room/gilde.c
@@ -106,8 +106,8 @@
   int lvl;
 
   if (PL && query_once_interactive(PL)
-      && (lvl=PL->QueryProp(P_LEVEL)) <= 6
-      && LEPMASTER->QueryLevel(PL->QueryProp(P_LEP)) > lvl)
+      && (lvl=({int})PL->QueryProp(P_LEVEL)) <= 6
+      && ({int})LEPMASTER->QueryLevel(({int})PL->QueryProp(P_LEP)) > lvl)
   {
     tell_object(PL,
       "\nDu koenntest Deine Stufe mit \"erhoehe spieler\" hier in der Gilde "
@@ -160,10 +160,10 @@
 {
   int cond;
 
-  cond=LEPMASTER->QueryReadyForWiz(this_player());
+  cond=({int})LEPMASTER->QueryReadyForWiz(this_player());
 
   if (!silent)
-    write(break_string(LEPMASTER->QueryReadyForWizText(this_player()),
+    write(break_string(({string})LEPMASTER->QueryReadyForWizText(this_player()),
           78, 0, 1));
 
   return cond;
@@ -173,9 +173,9 @@
 {
   string tmp;
 
-  int lep = PL->QueryProp(P_LEP);
-  int lvl = PL->QueryProp(P_LEVEL);
-  int diff = LEPMASTER->QueryNextLevelLEP(lvl, lep);
+  int lep = ({int})PL->QueryProp(P_LEP);
+  int lvl = ({int})PL->QueryProp(P_LEVEL);
+  int diff = ({int})LEPMASTER->QueryNextLevelLEP(lvl, lep);
 
   switch ( diff ) {
     case 101..__INT_MAX__:
@@ -185,23 +185,23 @@
       break;
 
     case 81..100:
-      tmp=kosten_0[PL->QueryProp(P_GUILD)] || kosten_0[0];
+      tmp=kosten_0[({string})PL->QueryProp(P_GUILD)] || kosten_0[0];
       break;
 
     case 61..80:
-      tmp=kosten_20[PL->QueryProp(P_GUILD)] || kosten_20[0];
+      tmp=kosten_20[({string})PL->QueryProp(P_GUILD)] || kosten_20[0];
       break;
 
     case 41..60:
-      tmp=kosten_40[PL->QueryProp(P_GUILD)] || kosten_40[0];
+      tmp=kosten_40[({string})PL->QueryProp(P_GUILD)] || kosten_40[0];
       break;
 
     case 21..40:
-      tmp=kosten_60[PL->QueryProp(P_GUILD)] || kosten_60[0];
+      tmp=kosten_60[({string})PL->QueryProp(P_GUILD)] || kosten_60[0];
       break;
 
     case 1..20:
-      tmp=kosten_80[PL->QueryProp(P_GUILD)] || kosten_80[0];
+      tmp=kosten_80[({string})PL->QueryProp(P_GUILD)] || kosten_80[0];
       break;
 
     default:
@@ -216,7 +216,7 @@
 
   if (!IS_SEER(this_player()) 
       && ( (str == "lang") ||
-        (this_player()->QueryProp(P_LEVEL) > 12 && str != "kurz"))) {
+        (({int})this_player()->QueryProp(P_LEVEL) > 12 && str != "kurz"))) {
     seer_cond(0);
     write (break_string("\nMit 'kosten kurz' kannst Du die Angabe der "
           "Seher-Anforderungen unterdruecken.", 78,0,1));
@@ -236,7 +236,7 @@
 
   if (lev<0) lev=0;
 
-  if (pl->QueryProp(P_GENDER) == MALE)
+  if (({int})pl->QueryProp(P_GENDER) == MALE)
     titles=QueryProp(P_GUILD_MALE_TITLES);
   else
     titles=QueryProp(P_GUILD_FEMALE_TITLES);
@@ -256,32 +256,32 @@
 // drumrum, den advance() aus hysterischen Gruenden tut.
 int try_player_advance(object pl) {
 
-  if (PL->QueryProp(P_KILLS)>0)
+  if (({int})PL->QueryProp(P_KILLS)>0)
     return -1;
 
-  int level = pl->QueryProp( P_LEVEL );
+  int level = ({int})pl->QueryProp( P_LEVEL );
   if (level == -1) level = 0;
 
-  if (LEPMASTER->QueryNextLevelLEP(level, pl->QueryProp(P_LEP)) > 0)
+  if (({int})LEPMASTER->QueryNextLevelLEP(level, ({int})pl->QueryProp(P_LEP)) > 0)
       return 0;
   else
       ++level;
 
-  pl->SetProp( P_LEVEL, level );
+  ({int})pl->SetProp( P_LEVEL, level );
 
   // Aufstiegs-Event ausloesen
-  EVENTD->TriggerEvent(EVT_LIB_ADVANCE, ([
+  ({int})EVENTD->TriggerEvent(EVT_LIB_ADVANCE, ([
         E_OBJECT: PL, E_PLNAME: getuid(PL),
         E_ENVIRONMENT: environment(PL),
-        E_GUILDNAME: PL->QueryProp(P_GUILD),
-        P_LEVEL: PL->QueryProp(P_LEVEL),
+        E_GUILDNAME: ({string})PL->QueryProp(P_GUILD),
+        P_LEVEL: ({int})PL->QueryProp(P_LEVEL),
         ]) );
 
   // Falls die konkrete Gilde des Spielern irgedwas mit dem Titel in
   // ABhaengigkeit des Spielerlevels tun will. Ausnahmsweise per call_other,
   // die Funktion kommt eigentlich aus /std/gilden_ob.c.
   string gname=({string})pl->QueryProp(P_GUILD);
-  (GUILD_DIR+"/"+gname)->adjust_title(pl);
+  ({void})(GUILD_DIR+"/"+gname)->adjust_title(pl);
 
   return 1;
 }
@@ -307,18 +307,18 @@
         "In diesem Fall kannst Du Deine Stufe nicht erhoehen.\n"+
         "Bitte wende Dich an den Sheriff (oder einen Erzmagier) und bring "
         "das in Ordnung.\n",78,BS_LEAVE_MY_LFS));
-    say(break_string(PL->Name(WER) 
+    say(break_string(({string})PL->Name(WER) 
           + " hat soeben auf schmerzliche Weise erfahren muessen, dass "
           "es wirklich nicht foerderlich ist, Mitspieler umzubringen.\n",
           78), PL);
     return 0;
   }
 
-  string name_of_player = PL->name(WER);
-  int level = PL->QueryProp(P_LEVEL);
+  string name_of_player = ({string})PL->name(WER);
+  int level = ({int})PL->QueryProp(P_LEVEL);
   say( name_of_player + " hat jetzt Stufe " + level + " erreicht.\n");
 
-  string title = PL->QueryProp(P_TITLE);
+  string title = ({string})PL->QueryProp(P_TITLE);
 
   switch(random(3)) {
     case 0:
@@ -357,9 +357,9 @@
       break;
   }
 
-  string str = QM->liste(this_player(), geloest_filter);
+  string str = ({string})QM->liste(this_player(), geloest_filter);
 
-  this_player()->More( str, 0 );
+  ({void})this_player()->More( str, 0 );
   return 1;
 }
 
@@ -369,11 +369,11 @@
   {
     write("Ein Zauberspruch zieht vor Deinem geistigen Auge vorbei und Du\n"
     "sprichst ihn nach.\n");
-    say(PL->name()+" murmelt einen geheimen Zauberspruch und schwebt langsam\n"
+    say(({string})PL->name()+" murmelt einen geheimen Zauberspruch und schwebt langsam\n"
     "zur Decke hinauf und verschwindet durch die Wand.\n");
     write("Du schwebst langsam zur Decke hinauf und als ob diese nicht da\n"
     "waere mitten hindurch in den Magiertreff.\n");
-    return (PL->move("/secure/merlin", M_TPORT | M_SILENT ) >= 0);
+    return (({int})PL->move("/secure/merlin", M_TPORT | M_SILENT ) >= 0);
   }
   write("Du springst zur Decke hinauf und nix passiert.\n");
   return 1;
diff --git a/std/shells/magier.c b/std/shells/magier.c
index efde69f..320b947 100644
--- a/std/shells/magier.c
+++ b/std/shells/magier.c
@@ -166,7 +166,7 @@
 
 static string _query_race()
 {
-  if (previous_object() && previous_object()->query_login_object())
+  if (previous_object() && ({int})previous_object()->query_login_object())
     return 0;
 
   return Query(P_RACE) ? Query(P_RACE) : Set(P_RACE, "Magier");
@@ -304,7 +304,7 @@
   if (str=="\\ESCAPE" && IS_LORD(this_object()))
   {
     __set_environment(this_object(),"/room/void");
-    environment()->init();
+    ({void})environment()->init();
     printf("You escaped.\n");
     return "";
   }
diff --git a/std/shells/magier/admin.c b/std/shells/magier/admin.c
index 64f3168..0dcac9f 100644
--- a/std/shells/magier/admin.c
+++ b/std/shells/magier/admin.c
@@ -89,7 +89,7 @@
   if (!str) return 0;
   if (sscanf(str,"%s %s",master,domain)!=2) return 0;
   if (!master || !domain) return 0;
-  if (!"/secure/master"->add_domain_master(master,domain))
+  if (!({int})"/secure/master"->add_domain_master(master,domain))
     write("Hat nicht funktioniert.\n");
   else
     write("Ok.\n");
@@ -109,7 +109,7 @@
   if (!str) return 0;
   if (sscanf(str,"%s %s",master,domain)!=2) return 0;
   if (!master || !domain) return 0;
-  if (!"/secure/master"->remove_domain_master(master,domain))
+  if (!({int})"/secure/master"->remove_domain_master(master,domain))
     write("Hat nicht funktioniert.\n");
   else
     write("Ok.\n");
@@ -130,7 +130,7 @@
   if (!str) return 0;
   if (sscanf(str, "%s %s", master, guild)!=2) return 0;
   if (!master || !guild) return 0;
-  if (!"/secure/master"->add_guild_master(master,guild))
+  if (!({int})"/secure/master"->add_guild_master(master,guild))
     write("Hat nicht funktioniert.\n");
   else
     write ("Ok.\n");
@@ -150,7 +150,7 @@
   if (!str) return 0;
   if (sscanf(str, "%s %s", master, guild)!=2) return 0;
   if (!master || !guild) return 0;
-  if (!"/secure/master"->remove_guild_master(master,guild))
+  if (!({int})"/secure/master"->remove_guild_master(master,guild))
     write("Hat nicht funktioniert.\n");
   else
     write("Ok.\n");
@@ -179,12 +179,12 @@
 
     if ( arg=="?" )
     {
-        write(call_other("/secure/sinmaster","ListSinners"));
+        write(({string})call_other("/secure/sinmaster","ListSinners"));
         return 1;
     }
     if ( arg=="!" )
     {
-        write(call_other("/secure/sinmaster","Dump"));
+        write(({string})call_other("/secure/sinmaster","Dump"));
         return 1;
     }
     if ( arg=="*" )
@@ -200,7 +200,7 @@
     {
       if ( i<2 )
         return 0;
-      write(call_other("/secure/sinmaster","RemoveSin",
+      write(({string})call_other("/secure/sinmaster","RemoveSin",
             lowerstring(parts[0][1..]),
             to_int(parts[1])));
     }
@@ -208,7 +208,7 @@
     {
       if ( i<2 )
         return 0;
-      write(call_other("/secure/sinmaster","AddSin",
+      write(({string})call_other("/secure/sinmaster","AddSin",
             lowerstring(parts[0][1..]),
             implode(parts[1..]," ")));
     }
@@ -216,7 +216,7 @@
     {
       if ( i>1 )
         return 0;
-      write(call_other("/secure/sinmaster","ListSins",
+      write(({string})call_other("/secure/sinmaster","ListSins",
             lowerstring(parts[0])));
     }
     return 1;
@@ -251,7 +251,7 @@
   }
 
   name=lower_case(name);
-  "/secure/master"->BanishName( name, grund, force );
+  ({int})"/secure/master"->BanishName( name, grund, force );
   return 1;
 }
 
@@ -305,7 +305,7 @@
     name = lower_case(name);
 
     if ( !grund || !stringp(grund) || lower_case(grund) != "loeschen" ){
-        "/secure/merlin"->MBanishInsert( name, grund, this_interactive() );
+        ({void})"/secure/merlin"->MBanishInsert( name, grund, this_interactive() );
         write( "Du setzt "+capitalize(name)+" auf die MBanish-Liste.\n" );
     }
     else{
@@ -313,7 +313,7 @@
             write( "Das duerfen nur Erzmagier.\n" );
             return 1;
         }
-        "/secure/merlin"->MBanishDelete( name );
+        ({void})"/secure/merlin"->MBanishDelete( name );
         write( "Du loescht "+capitalize(name)+" von der MBanish-Liste.\n" );
     }
 
@@ -342,7 +342,7 @@
 
   name = lower_case(name);
 
-  if ( !"/secure/master"->TBanishName( name, days ) )
+  if ( !({int})"/secure/master"->TBanishName( name, days ) )
       return 1;
 
   if ( !days )
@@ -395,7 +395,7 @@
 
     _notify_fail("Syntax: sbanish <numerische ip> <tage>\n");
 
-    if ( sscanf( this_player()->_unparsed_args(), "%s %d", ip, days ) != 2 )
+    if ( sscanf( ({string})this_player()->_unparsed_args(), "%s %d", ip, days ) != 2 )
         return 0;
 
     if ( !ip || !sizeof(ip) )
diff --git a/std/shells/magier/comm.c b/std/shells/magier/comm.c
index 5263979..444efb3 100644
--- a/std/shells/magier/comm.c
+++ b/std/shells/magier/comm.c
@@ -51,7 +51,7 @@
   }
   msg=break_string(msg,78);
   tell_object(ob,msg);
-  printf("%s->%s",ob->Name(WEN),msg);
+  printf("%s->%s",({string})ob->Name(WEN),msg);
   return 1;
 }
 
diff --git a/std/shells/magier/magier_ext.c b/std/shells/magier/magier_ext.c
index 365ac63..926d0b2 100644
--- a/std/shells/magier/magier_ext.c
+++ b/std/shells/magier/magier_ext.c
@@ -154,7 +154,7 @@
 static string _set_currentdir(string path)
 {
   Set(P_CURRENTDIR, path);
-  this_object()->modify_prompt();  // Prompt mit neuem Pfad setzen, telnetneg
+  ({void})this_object()->modify_prompt();  // Prompt mit neuem Pfad setzen, telnetneg
   return path;
 }
 
@@ -212,7 +212,7 @@
 
 static string _set_prompt(string prompt) {
   Set(P_PROMPT, prompt, F_VALUE);
-  this_object()->modify_prompt(); // neuen Prompt setzen (telnetneg.c)
+  ({void})this_object()->modify_prompt(); // neuen Prompt setzen (telnetneg.c)
   return prompt;
 }
 
@@ -292,7 +292,7 @@
            "nicht moeglich.\n");
     return 1;
   }
-  ob->start_player(capitalize(getuid(this_object())));
+  ({int})ob->start_player(capitalize(getuid(this_object())));
   remove();
   return 1;
 }
@@ -451,7 +451,7 @@
             QueryProp(P_MMSGOUT)),({ this_object() }));
   if (inform=="e") {
     // Logout-event ausloesen
-    EVENTD->TriggerEvent(EVT_LIB_LOGOUT, ([
+    ({int})EVENTD->TriggerEvent(EVT_LIB_LOGOUT, ([
             E_OBJECT: this_object(),
             E_PLNAME: getuid(this_object()),
             E_ENVIRONMENT: environment() ]) );
@@ -473,7 +473,7 @@
   SetProp(P_INVIS, 0);
   if (inform=="e") {
     // Login-event ausloesen
-    EVENTD->TriggerEvent(EVT_LIB_LOGIN, ([
+    ({int})EVENTD->TriggerEvent(EVT_LIB_LOGIN, ([
           E_OBJECT: this_object(),
           E_PLNAME: getuid(this_object()),
           E_ENVIRONMENT: environment() ]) );
diff --git a/std/shells/magier/objects.c b/std/shells/magier/objects.c
index 1a51ba5..b93f6c7 100644
--- a/std/shells/magier/objects.c
+++ b/std/shells/magier/objects.c
@@ -67,8 +67,8 @@
   if (!objectp(ob))
     return printf("clone: %s: Objekt beim Erzeugen zerstoert.\n",
                   args[0]),1;
-  if ((ob->move(this_object(),M_GET)>0) || 
-      (!objectp(ob)||ob->move(environment(),M_NOCHECK)>0)||!objectp(ob))
+  if ((({int})ob->move(this_object(),M_GET)>0) || 
+      (!objectp(ob)||({int})ob->move(environment(),M_NOCHECK)>0)||!objectp(ob))
   {
     if (!objectp(ob))
       return printf("clone: %s: Objekt beim Erzeugen zerstoert.\n",
@@ -118,11 +118,11 @@
   }
   else
     ob=args[0];
-  cmdline=capitalize(to_string(ob->name(WER)));
+  cmdline=capitalize(to_string(({string})ob->name(WER)));
   flags=({int})ob->QueryProp(P_PLURAL); // Missbrauch von flags :o)
   if (query_verb()=="destruct")
   {
-    if (!ob->remove())
+    if (!({int})ob->remove())
     {
       notify_fail(cmdline+" will nicht zerstoert werden!\n");
       return 0;
diff --git a/std/shells/magier/parsing.c b/std/shells/magier/parsing.c
index a38210a..31d3429 100644
--- a/std/shells/magier/parsing.c
+++ b/std/shells/magier/parsing.c
@@ -285,7 +285,7 @@
   }
 
   // Normalisiertes Pfadarray besorgen
-  string *patharray=master()->path_array(filename);
+  string *patharray=({string*})master()->path_array(filename);
   // und daraus auch filename neu erzeugen
   filename=implode(patharray, "/");
 
@@ -301,7 +301,7 @@
 
     object *vrooms = ({});
     if (vcompiler)
-      vrooms = vcompiler->QueryObjects();
+      vrooms = ({object*})vcompiler->QueryObjects();
     
     map(vrooms,#'_vc_map,&data);
   }
diff --git a/std/shells/magier/players.c b/std/shells/magier/players.c
index a07c343..6c80ffe 100644
--- a/std/shells/magier/players.c
+++ b/std/shells/magier/players.c
@@ -87,7 +87,7 @@
       if ( !pointerp(message) || sizeof(message) != 3 ){
           tell_room(environment(),sprintf("%s beschwoert einen Blitz "
                 "vom Himmel.\n",capitalize(getuid())),({ this_object() }));
-          printf("Du toetest %s.\n",opfer->name( WEN,2));
+          printf("Du toetest %s.\n",({string})opfer->name( WEN,2));
       }
       else
       {
@@ -97,7 +97,7 @@
         tell_object(opfer,_zap_message(message[2],opfer));
       }
 
-      opfer->die();
+      ({void})opfer->die();
       return 1;
   }
   else{
@@ -121,7 +121,7 @@
     mixed *pur = Query(P_PURSUERS);
     if ( pointerp(pur) && sizeof(pur) && objectp(pur[0]) )
     {
-      pur[0]->RemovePursuer(this_object());
+      ({void})pur[0]->RemovePursuer(this_object());
       ReceiveMsg("Verfolgungsmodus abgeschaltet.", MT_NOTIFICATION);
     }
     else
@@ -167,10 +167,10 @@
     else
     {
       ReceiveMsg(sprintf(
-        "Du verfolgst jetzt %s. [%s]", ziel->name(WEN), object_name(ziel)),
+        "Du verfolgst jetzt %s. [%s]", ({string})ziel->name(WEN), object_name(ziel)),
         MT_NOTIFICATION, MA_MOVE);
-      ziel->AddPursuer(this_object());
-      ziel->TakeFollowers();
+      ({void})ziel->AddPursuer(this_object());
+      ({void})ziel->TakeFollowers();
     }
   }
   else
@@ -201,10 +201,10 @@
     }
   if(living=find_living(livname))
   {
-    if (living->move(object_name(environment()),
+    if (({int})living->move(object_name(environment()),
                      M_TPORT|M_NOCHECK)<=0)
     {
-      printf("Teleportieren von %s fehlgeschlagen.\n",living->Name(WEM));
+      printf("Teleportieren von %s fehlgeschlagen.\n",({string})living->Name(WEM));
       if (IS_LEARNER(living))
         tell_object(living,sprintf("%s wollte Dich teleportieren, "
              "hat aber versagt!\n",capitalize(getuid())));
@@ -215,7 +215,7 @@
     "Du verlierst die Orientierung ...\n"
     +(QueryProp(P_INVIS)?"":"%s holt Dich zu sich.\n"),
     capitalize(getuid())));
-    printf("%s wurde herbeizitiert.\n",living->Name(WER));
+    printf("%s wurde herbeizitiert.\n",({string})living->Name(WER));
     return 1;
   }
   printf("Das Lebewesen '%s' konnte nicht gefunden werden.\n",
@@ -249,13 +249,13 @@
     mapping enemies = ({mapping})obj->StopHuntingMode(1);
     foreach(object en : enemies)
     {
-      en->StopHuntFor(obj, 1);
+      ({int})en->StopHuntFor(obj, 1);
       tell_object(obj,sprintf("%s beendet Deinen Kampf mit %s.\n",
-                              capitalize(getuid()),en->Name(WEM)));
+                              capitalize(getuid()),({string})en->Name(WEM)));
       tell_object(en,sprintf("%s beendet Deinen Kampf mit %s.\n",
                                   capitalize(getuid()),him));
     }
-    printf("%s und alle Gegner wurden befriedet.\n",obj->Name(WER));
+    printf("%s und alle Gegner wurden befriedet.\n",({string})obj->Name(WER));
   }
   return 1;
 }
@@ -281,7 +281,7 @@
   spieler = filter(users(),(: return !IS_LEARNER($1); :));
 #endif
   spieler = sort_array(spieler, function int (object a, object b)
-      { return a->QueryProp(P_LEVEL) > b->QueryProp(P_LEVEL); } );
+      { return ({int})a->QueryProp(P_LEVEL) > ({int})b->QueryProp(P_LEVEL); } );
   
   res = "Lvl Name         Erfahrung   QP  Int Str Dex Con WC   "
     "AC   HANDS HP  (max)\n"
@@ -290,19 +290,19 @@
   for (i=sizeof(spieler)-1; i>=0; i--)
     res += sprintf("%3d %-12s %9d %5d %3d %3d %3d %3d %4d %4d  %5d "
                    "%4d (%4d)\n",
-     spieler[i]->QueryProp(P_LEVEL),
+     ({int})spieler[i]->QueryProp(P_LEVEL),
      capitalize(getuid(spieler[i])),
-     spieler[i]->QueryProp(P_XP),
-     spieler[i]->QueryProp(P_QP),
-     spieler[i]->QueryAttribute(A_INT),
-     spieler[i]->QueryAttribute(A_STR),
-     spieler[i]->QueryAttribute(A_DEX),
-     spieler[i]->QueryAttribute(A_CON),
-     spieler[i]->QueryProp(P_TOTAL_WC),
-     spieler[i]->QueryProp(P_TOTAL_AC),
-     (sizeof(hands=(({int *})spieler[i]->QueryProp(P_HANDS)))?hands[1]:0),
-     spieler[i]->QueryProp(P_HP),
-     spieler[i]->QueryProp(P_MAX_HP));
+     ({int})spieler[i]->QueryProp(P_XP),
+     ({int})spieler[i]->QueryProp(P_QP),
+     ({int})spieler[i]->QueryAttribute(A_INT),
+     ({int})spieler[i]->QueryAttribute(A_STR),
+     ({int})spieler[i]->QueryAttribute(A_DEX),
+     ({int})spieler[i]->QueryAttribute(A_CON),
+     ({int})spieler[i]->QueryProp(P_TOTAL_WC),
+     ({int})spieler[i]->QueryProp(P_TOTAL_AC),
+     (sizeof(hands=(({<int|string|string*>*})spieler[i]->QueryProp(P_HANDS)))?hands[1]:0),
+     ({int})spieler[i]->QueryProp(P_HP),
+     ({int})spieler[i]->QueryProp(P_MAX_HP));
   More(res);
   return 1;
 }
@@ -324,14 +324,14 @@
   if (!(living = find_living(living_name)))
     return printf ("Ein Lebewesen namens '%s' konnte nicht gefunden werden!\n",
                    capitalize(living_name)),1;
-  if (living->command_me(what))
+  if (({int})living->command_me(what))
   {
     printf("Du zwingst %s zu \"%s\".\n",capitalize(living_name),what);
     if (!IS_ARCH(this_object()) &&
         getuid()!=({string|int})living->QueryProp(P_TESTPLAYER))
       log_file(SHELLLOG("ZWINGE"),
                sprintf("%s zwingt %s (%s) zu %s [%s]\n",
-                       capitalize(getuid()),living->Name(),capitalize(getuid(living)),
+                       capitalize(getuid()),({string})living->Name(),capitalize(getuid(living)),
                        what,dtime(time())));
   }
   else
@@ -360,7 +360,7 @@
   }
   lpv = ({int})ob->QueryProp(P_HP);
   mpv = ({int})ob->QueryProp(P_SP);
-  ob->heal_self(1000000);
+  ({void})ob->heal_self(1000000);
   string|int testie = ({string|int})ob->QueryProp(P_TESTPLAYER);
   if (!IS_LEARNER(ob)
       && (!testie || (to_string(testie)[<5..<1] == "Gilde")))
@@ -368,7 +368,7 @@
     log_file(SHELLLOG("HEAL"),
        sprintf("%s heilt %s (%s) %s (LP: %d -> %d, MP: %d -> %d)\n",
          capitalize(geteuid(this_player())),
-         call_other(ob,"name"), capitalize(geteuid(ob)),
+         ({string})call_other(ob,"name"), capitalize(geteuid(ob)),
          dtime(time()), lpv, ({int})ob->QueryProp(P_HP),
                mpv,({int})ob->QueryProp(P_SP)));
   }
@@ -422,11 +422,11 @@
   a=0;res="";
   for(i=0; i<sizeof(list); i++) {
     string name_; 
-    name_ = capitalize(list[i]->query_real_name()||"<logon>");
+    name_ = capitalize(({string})list[i]->query_real_name()||"<logon>");
     res += sprintf( "%s%-15s%s %s%-13s%s %s%3d%s %s %s %s%s%s%s %s%s\n",
                     a_ipnum, query_ip_number(list[i]),a_end,a_name,
-                    (list[i]->QueryProp(P_INVIS)?"("+name_+")":name_),
-                    a_end,a_level, MASTER->get_wiz_level(getuid(list[i])),
+                    (({int})list[i]->QueryProp(P_INVIS)?"("+name_+")":name_),
+                    a_end,a_level, ({int})MASTER->get_wiz_level(getuid(list[i])),
                     a_end,a_age,
                     time2string("%4x %0X",(({int})list[i]->QueryProp(P_AGE))*2),
                     query_idle(list[i])>=300?(a++,(a_idle+"I")):" ",
@@ -522,10 +522,10 @@
 
   foreach(object u: spieler)
   {
-    string second=u->QueryProp(P_SECOND);
+    string second=({string})u->QueryProp(P_SECOND);
     if (stringp(second) && sizeof(second))
     {
-      if (!master()->find_userinfo(second))
+      if (!({int})master()->find_userinfo(second))
         second = "*ungueltig*";
       else
         second = capitalize(second);
@@ -535,7 +535,7 @@
 
     arg+=sprintf("%-11s %-17s %26s  %-15s\n",
                  capitalize(getuid(u)), second,
-                 dtime(u->QueryProp(P_LAST_LOGIN)),
+                 dtime(({int})u->QueryProp(P_LAST_LOGIN)),
                  _spieler_time2string(query_idle(u)));
   }
   arg+="==============================================================="
diff --git a/std/shells/magier/upd.c b/std/shells/magier/upd.c
index f48d73c..87a3030 100644
--- a/std/shells/magier/upd.c
+++ b/std/shells/magier/upd.c
@@ -39,7 +39,7 @@
 { 
     if ( query_once_interactive(obj) )
       { 
-        obj->move( inv_saver, NO_CHECK );
+        ({int})obj->move( inv_saver, NO_CHECK );
         return obj;
       }
     return 0;
@@ -140,7 +140,7 @@
   }
   if (!(flags&UPD_H))
   {
-    if(err = catch(obj->remove()))
+    if(err = catch(({int})obj->remove()))
       printf("upd: %s: remove() fehlgeschlagen. Aufruf von " +
              "destruct().\n",file);
   }
@@ -394,10 +394,10 @@
             items=transpose_array(items)[0];
             while (i--)
               if (member(items, inv[i])==-1)
-                    inv[i]->move(inv_saver,NO_CHECK);
+                    ({int})inv[i]->move(inv_saver,NO_CHECK);
           }
           else // In diesem Objekt sind keine Items gesetzt.
-            while (i--) inv[i]->move(inv_saver,NO_CHECK);
+            while (i--) ({int})inv[i]->move(inv_saver,NO_CHECK);
         }
       }
       else
@@ -453,7 +453,7 @@
                  _illegal_closure(pro[names[i], F_SET_METHOD]) )
               m_delete( pro, names[i] );
           
-          obj->SetProperties(pro);
+          ({mapping})obj->SetProperties(pro);
           msg += ", Properties gesetzt";
         }
         // Wenn kein UPD_C, wird ggf. das Ergebnis von Configure() wieder
@@ -476,7 +476,7 @@
         }
         if (env)
         {
-          if ( obj->move( env, NO_CHECK ) <= 0 )
+          if ( ({int})obj->move( env, NO_CHECK ) <= 0 )
             printf( "upd: /%O konnte nicht in /%O zurueckbewegt werden\n",
                     obj, env );
           else
@@ -484,7 +484,7 @@
         }
         if (i=sizeof(inv))
         {
-          while(i--) if (inv[i]) inv[i]->move(obj, NO_CHECK );
+          while(i--) if (inv[i]) ({int})inv[i]->move(obj, NO_CHECK );
           msg += ", Inhalt zurueckbewegt";
         }
       }
diff --git a/std/thing/commands.c b/std/thing/commands.c
index c3eddf6..157fe74 100644
--- a/std/thing/commands.c
+++ b/std/thing/commands.c
@@ -79,10 +79,10 @@
   // Restriktionen vor dem Anzeigen pruefen.
   if (mappingp(restr))
   {
-    string res = "/std/restriction_checker"->check_restrictions(PL,restr);
+    string res = ({string})"/std/restriction_checker"->check_restrictions(PL,restr);
     if (res)
     {
-      PL->ReceiveMsg("Fuer " + name(WEN,1) + " darfst Du "
+      ({int})PL->ReceiveMsg("Fuer " + name(WEN,1) + " darfst Du "
                      "die Syntaxhilfe (noch) nicht lesen:\n"
                      + res,
                      MT_NOTIFICATION|MSG_BS_LEAVE_LFS,
@@ -96,12 +96,12 @@
     if (res)
     {
       if (intp(res))
-        PL->ReceiveMsg("Fuer " + name(WEN,1) + " darfst Du "
+        ({int})PL->ReceiveMsg("Fuer " + name(WEN,1) + " darfst Du "
                        "die Syntaxhilfe (noch) nicht lesen.",
                        MT_NOTIFICATION|MSG_BS_LEAVE_LFS,
                        "syntaxhilfe",0,this_object());
       else if (stringp(res))
-        PL->ReceiveMsg(res,
+        ({int})PL->ReceiveMsg(res,
                        MT_NOTIFICATION|MSG_BS_LEAVE_LFS,
                        "syntaxhilfe",0,this_object());
       return 1;
@@ -127,7 +127,7 @@
     return 0;
   }
   if (stringp(help) && sizeof(help))
-    PL->ReceiveMsg(help, MT_NOTIFICATION|MSG_BS_LEAVE_LFS,
+    ({int})PL->ReceiveMsg(help, MT_NOTIFICATION|MSG_BS_LEAVE_LFS,
                    "syntaxhilfe",0,this_object());
 
   return 1;
diff --git a/std/thing/moving.c b/std/thing/moving.c
index 484b335..fbee070 100644
--- a/std/thing/moving.c
+++ b/std/thing/moving.c
@@ -26,8 +26,8 @@
   // M_NOCHECK? -> Bewegung eh erlaubt (und Rueckgabewert wuerde ignoriert)
   if ((method&M_NOCHECK)) {
     // Bei M_NOCHECK zwar Prevent* aufrufen, aber das Resultat ignorieren
-    if (oldenv) oldenv->PreventLeave(this_object(),dest);
-    dest->PreventInsert(this_object());
+    if (oldenv) ({int})oldenv->PreventLeave(this_object(),dest);
+    ({int})dest->PreventInsert(this_object());
 
     return 0; // das wars, rest ist egal.
   }
@@ -51,15 +51,15 @@
   }
 
   // Ist das Zielobjekt schon voll?
-  if ( !dest->MayAddObject(this_object()) )
+  if ( !({int})dest->MayAddObject(this_object()) )
       return TOO_MANY_OBJECTS;
 
   // Darf hinausbewegt werden?
-  if ( oldenv && oldenv->PreventLeave(this_object(), dest) )
+  if ( oldenv && ({int})oldenv->PreventLeave(this_object(), dest) )
       return ME_CANT_LEAVE_ENV;
 
   // Darf hineinbewegt werden?
-  if ( dest->PreventInsert(this_object()) )
+  if ( ({int})dest->PreventInsert(this_object()) )
       return ME_CANT_BE_INSERTED;
 
   return(0);
@@ -108,7 +108,7 @@
                   !catch(valid=({int})vc->QueryValidObject(fn);publish)
                   && valid>0)) &&
                   !catch(load_object(fn);publish))) &&
-              (!fn->QueryProp(P_NO_PLAYERS) || QueryProp(P_TESTPLAYER)) )
+              (!({int})fn->QueryProp(P_NO_PLAYERS) || ({int|string})QueryProp(P_TESTPLAYER)) )
            dest = fn;
       }
   }
@@ -141,7 +141,7 @@
   mixed *sens = QueryProp(P_SENSITIVE);
   if (sens && environment())
   {
-    environment()->RemoveSensitiveObject( this_object() );
+    ({void})environment()->RemoveSensitiveObject( this_object() );
     if (!objectp(ME))
       return ME_WAS_DESTRUCTED;
   }
@@ -156,16 +156,16 @@
   NotifyMove(environment(), oldenv, method);
 
   // Alte Umgebung informieren
-  if (oldenv) oldenv->NotifyLeave(this_object(), dest);
+  if (oldenv) ({void})oldenv->NotifyLeave(this_object(), dest);
 
   // Wenn das Objekt eine Umgebung hat, selbige informieren
   if (environment()) {
     if (sens)
     {
-      environment()->InsertSensitiveObject(this_object(),sens);
+      ({void})environment()->InsertSensitiveObject(this_object(),sens);
       if (!objectp(ME)) return ME_WAS_DESTRUCTED;
     }
-    environment()->NotifyInsert(this_object(), oldenv);
+    ({void})environment()->NotifyInsert(this_object(), oldenv);
   }
   //wurde das Objekt vielleicht noch zerstoert?
   if (!objectp(ME)) return(ME_WAS_DESTRUCTED);
@@ -179,8 +179,8 @@
 {
     if (environment() ) {
         if(QueryProp(P_SENSITIVE))
-                environment()->RemoveSensitiveObject(this_object());
-        environment()->NotifyRemove(this_object());
+                ({void})environment()->RemoveSensitiveObject(this_object());
+        ({void})environment()->NotifyRemove(this_object());
     }
     if (objectp(this_object()))
         destruct(this_object());
@@ -197,7 +197,7 @@
       // Der Zweck heiligt ja bekanntlich die Mittel. ;-)
       //
       // Tiamak
-      env->_set_last_content_change();
+      ({int})env->_set_last_content_change();
   }
   return 0;
 }
diff --git a/std/util/executer.c b/std/util/executer.c
index bdd4b81..bdd10d2 100644
--- a/std/util/executer.c
+++ b/std/util/executer.c
@@ -14,7 +14,7 @@
     return apply(fun, args);
 
   if (stringp(fun))
-    return call_other(this_object(), fun, args...);
+    return ({mixed})call_other(this_object(), fun, args...);
 
   if ( pointerp(fun))
   {
@@ -30,7 +30,7 @@
     if ( !objectp(ob) || !stringp(fun[1]) )
       return 0;
 
-    return call_other(ob, fun[1], args...);
+    return ({mixed})call_other(ob, fun[1], args...);
   }
   return 0;
 }
diff --git a/std/util/path.c b/std/util/path.c
index 00ceaa6..ba16e71 100644
--- a/std/util/path.c
+++ b/std/util/path.c
@@ -54,6 +54,6 @@
     user = getuid(RPL || PL);
   if (expand)
     path=expand_path(path, user);
-  return implode(master()->path_array(path), "/");
+  return implode(({string*})master()->path_array(path), "/");
 }
 
diff --git a/std/weapon/combat.c b/std/weapon/combat.c
index d266acc..f26b1d8 100644
--- a/std/weapon/combat.c
+++ b/std/weapon/combat.c
@@ -257,7 +257,7 @@
     // gleich auf eine WieldFunc zurueckgreifen zu muessen.
     // Die Auswertung erfolgt ueber den RestrictionChecker
     if ( (res=QueryProp(P_RESTRICTIONS)) && mappingp(res) &&
-         (res=call_other("/std/restriction_checker","check_restrictions",
+         (res=({string})call_other("/std/restriction_checker","check_restrictions",
              PL,res)) && stringp(res) ) 
     {
         notify_fail(res);
diff --git a/sys/magier.h b/sys/magier.h
index 544bcc7..5936311 100644
--- a/sys/magier.h
+++ b/sys/magier.h
@@ -30,9 +30,9 @@
 #define FILE_DELETED    "%s wurde geloescht.\n"
 #define NO_DELETE       "%s konnte nicht geloescht werden.\n"
 
-#define MAY_READ(x)   call_other(__MASTER_OBJECT__,"valid_read",x,getuid(this_object()))
-#define MAY_WRITE(x)  call_other(__MASTER_OBJECT__,"valid_write",x,getuid(this_object()))
-#define MAY_DELETE(x) call_other(__MASTER_OBJECT__,"remove_file",x,getuid(this_object()))
+#define MAY_READ(x)   ({mixed})call_other(__MASTER_OBJECT__,"valid_read",x,getuid(this_object()))
+#define MAY_WRITE(x)  ({mixed})call_other(__MASTER_OBJECT__,"valid_write",x,getuid(this_object()))
+#define MAY_DELETE(x) ({mixed})call_other(__MASTER_OBJECT__,"remove_file",x,getuid(this_object()))
 
 #define MAXLEN  50000
 
diff --git a/sys/pager.h b/sys/pager.h
index fef652a..f30e749 100644
--- a/sys/pager.h
+++ b/sys/pager.h
@@ -51,9 +51,9 @@
 #include <player/base.h>
 
 #define PAGELENGTH	(this_interactive() ? \
-			   this_interactive()->QueryProp(P_SCREENSIZE) : \
+			   ({int})this_interactive()->QueryProp(P_SCREENSIZE) : \
 			   (interactive(this_player()) ? \
-			     this_player()->QueryProp(P_SCREENSIZE) : 20))
+			     ({int})this_player()->QueryProp(P_SCREENSIZE) : 20))
 
 // old_explode() must create an array that implode()'s to the same string
 #define Explode(s,x)	(explode(s,x))