diff --git a/secure/master.c b/secure/master.c
index 2eacfb9..306f0a7 100644
--- a/secure/master.c
+++ b/secure/master.c
@@ -428,12 +428,12 @@
   string *strs,tmp;
   int s;
 
-  // full_path_array nach strs
+  // path_array nach strs
   // TODO: was ist mit clones?
   if(objectp(str))
-    strs=full_path_array(object_name(str), 0);
+    strs=path_array(object_name(str), 0, 0);
   else if(stringp(str))
-    strs=full_path_array(str, 0);
+    strs=path_array(str, 0, 0);
   else return NOBODY;
 
   // absolute Pfade interessieren hier gerade nicht.
diff --git a/secure/master/file_access.c b/secure/master/file_access.c
index da542b4..441b8f0 100644
--- a/secure/master/file_access.c
+++ b/secure/master/file_access.c
@@ -216,22 +216,23 @@
 
   switch(fun) {
     case "log_file":
-      strs=full_path_array("/"+path, 0);
+      strs=path_array("/"+path, 0, 0);
       path = implode(strs, "/");
       strs -= ({""}); // remove trailing and leading "/".
       if (sizeof(strs)>1 && strs[0]=="log") return path;
       return 0;
     case "save_object":
-      if (!path) return 0;
-      strs=full_path_array("/"+path, 0);
+      if (!sizeof(path)) return 0;
+      strs=path_array("/"+path, 0, 0);
       break;
     case "ed_start":
-      if (path && path[0])
-        strs=full_path_array(path, euid);
-      else strs=({"players",euid,".err"});
+      if (sizeof(path))
+        strs=path_array(path, euid, 1);
+      else
+        strs=({"players",euid,".err"});
       break;
     default:
-      strs=full_path_array(path, euid);
+      strs=path_array(path, euid, 1);
   }
 
   if (!euid || euid=="NOBODY" || euid=="ftp" || euid=="anonymous") return 0;
@@ -432,12 +433,9 @@
 
   if (!euid) euid="-";
 
-  strs=full_path_array(path, euid);
-  // Pfad soll ab jetzt auf jeden Fall absolut sein.
-  if (strs[0] != "")
-      path = "/" + implode(strs, "/");
-  else
-      path=implode(strs, "/");
+  strs=path_array(path, euid, 1);
+  // Pfade sind ab jetzt auf jeden Fall absolut.
+  path=implode(strs, "/");
 
   // fuer die Rechtebestimmung "/" an Anfang und Ende entfernen
   strs -= ({""});
