diff --git a/std/shells/magier/fileedit.c b/std/shells/magier/fileedit.c
index 655bab2..d34b3be 100644
--- a/std/shells/magier/fileedit.c
+++ b/std/shells/magier/fileedit.c
@@ -9,6 +9,8 @@
 #pragma no_clone
 #pragma pedantic
 
+protected functions virtual inherit "/std/util/path";
+
 #include <wizlevels.h>
 #include <input_to.h>
 
@@ -69,9 +71,8 @@
     if (sizeof(args2=file_list(args[arg_size..arg_size],MODE_ED,0,"/")))
       args[arg_size..arg_size]=args2;
     else
-      args[arg_size]=({ "" , -1, 0 , (string)
-              call_other(master(),"_get_path",args[arg_size],
-                  getuid())});
+      args[arg_size]=({ "" , -1, 0 ,
+                       normalize_path(args[arg_size], getuid(), 1) });
   }
   args=map(args,(:
           if ($1[FILESIZE]>=FSIZE_NOFILE) return $1[FULLNAME];
diff --git a/std/shells/magier/magier_ext.c b/std/shells/magier/magier_ext.c
index a5d30b2..e563ca9 100644
--- a/std/shells/magier/magier_ext.c
+++ b/std/shells/magier/magier_ext.c
@@ -5,6 +5,8 @@
 #pragma no_clone
 #pragma pedantic
 
+protected functions virtual inherit "/std/util/path";
+
 #include <wizlevels.h>
 #include <logging.h>
 #include <magier.h>
@@ -259,14 +261,14 @@
   if (this_player()!=this_interactive()) return 0;
   if (this_player()!=this_object()) return 0;
   if (!(filename=_unparsed_args())) return USAGE("exec <objektname>");
-  filename=(string)"secure/master"->_get_path(filename,getuid());
+  filename=normalize_path(filename, getuid(), 1);
   if (file_size(filename)<0&&(!to_filename(filename+".c"))||
       file_size(to_filename(filename+".c"))<0)
   {
     printf("exec: %s: Datei nicht vorhanden oder ein Verzeichnis.\n",filename);
     return 1;
   }
-  if (catch(call_other(filename,"????"))) 
+  if (catch(load_object(filename)))
   {
     printf("exec: Fehler beim Laden von %s.\n",filename);
     return 1;
diff --git a/std/shells/magier/moving.c b/std/shells/magier/moving.c
index 1aac3c3..ccb5535 100644
--- a/std/shells/magier/moving.c
+++ b/std/shells/magier/moving.c
@@ -9,6 +9,8 @@
 #pragma no_clone
 #pragma pedantic
 
+protected functions virtual inherit "/std/util/path";
+
 #define NEED_PROTOTYPES
 #include <magier.h>
 #include <thing/properties.h>
@@ -74,7 +76,7 @@
       sscanf(str, "%s %s", room, cmd) != 2)
     return USAGE("in <raum> <befehl>\n");
   old_room = environment();
-  room=(string)call_other(master(),"_get_path",room,getuid());
+  room=normalize_path(room, getuid(), 1);
   if (err=catch(move_object(room)))
   {
     if (catch(size=file_size(room+".c"))||size < 0)
@@ -134,7 +136,7 @@
     return USAGE("goto [lebewesen|filename]\n");
   if (!((target=find_living_nr(dest)) && (target=environment(target))))
   {
-     target2=target=(mixed)call_other(master(),"_get_path",dest,getuid());
+     target2=target=normalize_path(dest, getuid(), 1);
      if (!find_object(target))
      {
        // ggf. .c dranhaengen
