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";
         }
       }
