diff --git a/secure/simul_efun/files.c b/secure/simul_efun/files.c
index 291bef6..d2b81a5 100644
--- a/secure/simul_efun/files.c
+++ b/secure/simul_efun/files.c
@@ -43,3 +43,64 @@
     return funcall(bind_lambda(#'efun::write_file, previous_object()),
                    file, str, flags);
 }
+
+// * Bei 50k Groesse Log-File rotieren
+varargs int log_file(string file, string txt, int size_to_break)
+{
+    mixed *st;
+
+    file="/log/"+file;
+    file=implode((efun::explode(file,"/")-({".."})),"/");
+
+    if (!funcall(bind_lambda(#'efun::call_other,PO),"secure/master",//')
+                "valid_write",file,geteuid(PO),"log_file",PO))
+      return 0;
+    if ( size_to_break >= 0 & (
+        sizeof(st = get_dir(file,2) ) && st[0] >= (size_to_break|MAX_LOG_SIZE)))
+        catch(rename(file, file + ".old");publish); /* No panic if failure */
+
+    return(write_file(file,txt));
+}
+
+#if !__EFUN_DEFINED__(copy_file)
+#define MAXLEN 50000
+public nomask int copy_file(string source, string dest)
+{
+
+    int ptr;
+    string bytes;
+
+    set_this_object(previous_object());
+    if (!sizeof(source)||!sizeof(dest)||source==dest||(file_size(source)==-1)||
+        (!call_other(master(),"valid_read",source,
+                     getuid(this_interactive()||
+                   previous_object()),"read_file",previous_object()))||
+        (!call_other(master(),"valid_read",source,
+                     getuid(this_interactive()||
+                   previous_object()),"write_file",previous_object())))
+      return 1;
+    switch (file_size(dest))
+    {
+    case -1:
+      break;
+    case -2:
+      if (dest[<1]!='/') dest+="/";
+      dest+=efun::explode(source,"/")[<1];
+      if (file_size(dest)==-2) return 1;
+      if (file_size(dest)!=-1) break;
+    default:
+      if (!rm(dest)) return 1;
+      break;
+    }
+    do
+    {
+      bytes = read_bytes(source, ptr, MAXLEN); ptr += MAXLEN;
+      if (!bytes) bytes="";
+      write_file(dest, bytes);
+    }
+    while(sizeof(bytes) == MAXLEN);
+    return 0;
+}
+#endif //!__EFUN_DEFINED__(copy_file)
+
+
