diff --git a/p/daemon/finger.c b/p/daemon/finger.c
index 2af2975..6e42792 100644
--- a/p/daemon/finger.c
+++ b/p/daemon/finger.c
@@ -345,12 +345,12 @@
   {
     if (IS_WIZARD(this_player())) {
        text+=capitalize(str)+" ist";
-       switch((int)properties[P_SECOND_MARK]) {
+       switch(properties[P_SECOND_MARK]) {
          case -1: text+=" unsichtbar markierte"
-                       +((int)properties[P_GENDER]!=FEMALE ? "r": "");
+                       +(properties[P_GENDER]!=FEMALE ? "r": "");
                   break;
          case  0: text+=" nicht namentlich markierte"
-                       +((int)properties[P_GENDER]!=FEMALE ? "r": "");
+                       +(properties[P_GENDER]!=FEMALE ? "r": "");
                   break;
          default:
        }
@@ -359,14 +359,14 @@
          text+=" ("+capitalize(h)+")";
        text+=".\n";
     }
-    else if ((int)properties[P_SECOND_MARK]>0)
+    else if (properties[P_SECOND_MARK]>0)
     {
       text+=capitalize(str)+" ist Zweitspieler"+IN;
       if (stringp(h))
         text+=" ("+capitalize(h)+")";
       text+=".\n";
     }
-    else if ((int)properties[P_SECOND_MARK]>-1)
+    else if (properties[P_SECOND_MARK]>-1)
       text+=capitalize(str)+" ist Zweitspieler"+IN+".\n";
   }
   if (properties[P_DEADS])
diff --git a/p/service/padreic/mnpc/moving.c b/p/service/padreic/mnpc/moving.c
index 301b8aa..b5a0d34 100644
--- a/p/service/padreic/mnpc/moving.c
+++ b/p/service/padreic/mnpc/moving.c
@@ -271,24 +271,24 @@
          {
             // wenn ein VC existiert, prüfen ob dieser ParaObjecte unterstuetzt
             // wenn ja, dann testen ob sich Raum laden laesst...
-            if ((!catch(tmp=(int)call_other(vc,"NoParaObjects")) && (!tmp)) &&
+            if ((!catch(tmp=call_other(vc,"NoParaObjects")) && (!tmp)) &&
                 (!catch(call_other( fn, "???" ))))
                 dest=fn;
          }
       }
 
-      res = (int)call_other(ME, "move", dest, M_NOCHECK);
+      res = call_other(ME, "move", dest, M_NOCHECK);
 
       if (oldenv==environment())
         return res;
 
       // als erstes die Meldung fuer das Verlassen des Raumes...
       if ( method & M_TPORT )
-        textout = (string) QueryProp(P_MMSGOUT) || (string) QueryProp(P_MSGOUT);
+        textout = QueryProp(P_MMSGOUT) || QueryProp(P_MSGOUT);
       else
       {
-        mout = explode( (string) QueryProp(P_MSGOUT) || "", "#" );
-        textout = mout[0] || (string) QueryProp(P_MMSGOUT);
+        mout = explode( QueryProp(P_MSGOUT) || "", "#" );
+        textout = mout[0] || QueryProp(P_MMSGOUT);
       }
 
       if (stringp(textout))
@@ -308,9 +308,9 @@
       // nun die Meldung für das "Betreten" des Raumes...
 
       if ( method & M_TPORT )
-        textin = (string) QueryProp(P_MMSGIN);
+        textin = QueryProp(P_MMSGIN);
       else
-        textin = (string) QueryProp(P_MSGIN);
+        textin = QueryProp(P_MSGIN);
 
       if (stringp(textin))
       {
