diff --git a/std/player/restrictions.c b/std/player/restrictions.c
index dc00415..4b79c2b 100644
--- a/std/player/restrictions.c
+++ b/std/player/restrictions.c
@@ -54,23 +54,18 @@
 
 // **** local property methods
 static int _query_max_weight() {
-  int str,val;
-  mixed ski;
-  
   if (QueryProp(P_GHOST) && !IS_WIZARD(ME))
     return 0;
-  str=QueryAttribute(A_STR);
-  ski = UseSkill(SK_CARRY, ([SI_SKILLARG : str ]));
+  int str=QueryAttribute(A_STR);
+  int ski = UseSkill(SK_CARRY, ([SI_SKILLARG : str ]));
 
-  if (!intp(ski))
-    ski = 0;
-  
+  int val;
   if (str<0) {
-    val=9200+str*160+(int)ski;
+    val=9200+str*160+ski;
     if (val<3000) val=3000;
     return val;
   }
-  val = 9200+str*800+(int)ski;
+  val = 9200+str*800+ski;
   if (val<3000)
     val = 3000;
   return val;
diff --git a/std/player/skills.c b/std/player/skills.c
index fa60d1d..cdac73e 100644
--- a/std/player/skills.c
+++ b/std/player/skills.c
@@ -7,7 +7,7 @@
 //
 // 2003-01-20: Nun Zooks Baustelle
 //
-#pragma strong_types
+#pragma strict_types
 #pragma save_types
 #pragma range_check
 #pragma no_clone
@@ -45,7 +45,7 @@
 
   // Wir holen die Gilden aus dem Gildenmaster 
   foreach(string guild:
-      (string *)call_other(GUILDMASTER,"QueryProp",P_VALID_GUILDS))
+      ({string *})call_other(GUILDMASTER,"QueryProp",P_VALID_GUILDS))
   {
     if(catch(act=call_other("/gilden/"+guild,"QueryProp",
         P_GUILD_DEACTIVATE_SKILLS); publish ))
@@ -299,8 +299,8 @@
               //wt_aus=call_other(waf_aus,"QueryProp",P_WEAPON_TYPE);
               //if (wt_azu==wt_aus)
               if (objectp(waf_aus) && objectp(waf_azu) &&
-                  (string)waf_aus->QueryProp(P_WEAPON_TYPE)
-                     == (string)waf_azu->QueryProp(P_WEAPON_TYPE)) 
+                  ({string})waf_aus->QueryProp(P_WEAPON_TYPE)
+                     == ({string})waf_azu->QueryProp(P_WEAPON_TYPE)) 
                 {
                 // Bonus von bis zu 5 Punkten
                 //log_file("humni/log_azubi",
