diff --git a/secure/master.c b/secure/master.c
index 22d4675..a677902 100644
--- a/secure/master.c
+++ b/secure/master.c
@@ -30,7 +30,6 @@
 //for limited, set_limit(), etc. Abs. Pfad noetig, da noch kein Include-Hook
 #include "/sys/rtlimits.h"
 #include "/sys/debug_info.h"
-#include "/sys/debug_message.h"
 #include "/sys/configuration.h"
 #include "/sys/regexp.h"
 
@@ -220,11 +219,13 @@
   ReloadInsecureFile();
 
   if (eflag) {
-    write("-e angegeben -> Preloading unterdrueckt ...\n");
+    debug_message(
+        "epilog(): -e angegeben -> Preloading unterdrueckt ...\n",
+        DMSG_STAMP);
     return 0;
   }
 
-  printf("Preloading gestartet: %s\n\n",ctime(time()));
+  debug_message("Preloading gestartet.\n", DMSG_STAMP);
 
   //Files fuers Preloading und Regionen holen
   files=explode_files("/std/preload_file") + explode_files("/d/preload_file");
@@ -232,9 +233,7 @@
 
   for (i=sizeof(domains);i--;)
     files+=explode_files("/d/"+domains[i]+"/preload_file");
-  
-  write("\n");
- 
+
   return files;
 }
 
@@ -250,13 +249,12 @@
   // Kein Besitzer -> Meldung ausgeben, fertig
   if (!(name=creator_file(file)))
   {
-    printf("Kein Besitzer gefunden fuer Datei %s.\n",file);
+    debug_message(
+        sprintf("preload: Kein Besitzer gefunden fuer Datei %s.\n",file),
+        DMSG_STDOUT|DMSG_STDERR);
     return;
   }
 
-  // Datei und Besitzer ausgeben
-  printf("%-50s%-15s",file,name);
-
   efun::configure_object(this_object(), OC_EUID, name);
 
   // Dann mal laden .. dabei Zeit messen
@@ -269,11 +267,14 @@
   err = catch(limited(#'load_object,({5000000}),file));
 
   if (err != 0)
-    printf("\nFehler beim Laden von %s:\n%s\n",file,err);
+    debug_message(sprintf("\nFehler beim Laden von %s:\n%s\n",file,err),
+                  DMSG_STDOUT|DMSG_STDERR);
   else
   {
+    // Datei, Besitzer und Ladezeit ausgeben
     zeit=apply(#'+,rusage()[0..1])-zeit;
-    printf("(%2d.%:02d s)\n",zeit/1000,zeit%1000);
+    debug_message(sprintf("%-50s%-15s (%2d.%:02d s)\n",
+          file, name, zeit/1000,zeit%1000));
   }
 
   // Noch EUID zuruecksetzen
@@ -295,23 +296,21 @@
     --loading_simul_efuns;
     return ({SIMUL_EFUN_FILE});
   }
-  
-  write("Failed to load simul efun " + SIMUL_EFUN_FILE + "\n");
+
   debug_message("Failed to load simul efun " + SIMUL_EFUN_FILE +
-      " " + err, DMSG_STDOUT | DMSG_LOGFILE);
+      " " + err, DMSG_STDOUT | DMSG_LOGFILE | DMSG_STAMP);
 
   if (!(err=catch(SPARE_SIMUL_EFUN_FILE->start_simul_efun())) ) {
     --loading_simul_efuns;
     return ({SPARE_SIMUL_EFUN_FILE});
   }
-  
-  write("Failed to load spare simul efun" + SPARE_SIMUL_EFUN_FILE + "\n");
-  debug_message("Failed to load spare simul efun " + SPARE_SIMUL_EFUN_FILE +
-      " " + err, DMSG_STDOUT | DMSG_LOGFILE);
 
- 
+  debug_message("Failed to load spare simul efun " + SPARE_SIMUL_EFUN_FILE +
+      " " + err, DMSG_STDOUT | DMSG_LOGFILE | DMSG_STAMP);
+
+
   efun::shutdown();
-  
+
   return 0;
 }
 
diff --git a/secure/master.h b/secure/master.h
index 51f579b..242a640 100644
--- a/secure/master.h
+++ b/secure/master.h
@@ -23,7 +23,11 @@
 #define P_DEFAULT_NOTIFY_FAIL "default_notify_fail"
 #endif
 
+#include "/sys/functionlist.h"
+#include "/sys/debug_message.h"
+
 #include "/secure/config.h"
+#include "/secure/wizlevels.h"
 
 #include "/sys/userinfo.h"
 #include "/sys/player/base.h"
@@ -32,10 +36,6 @@
 #include "/sys/wizlist.h"
 #include "/sys/daemon.h"
 #include "/sys/mail.h"
-#include "/sys/driver_hook.h"
-#include "/sys/functionlist.h"
-
-#include "/secure/wizlevels.h"
 
 //#define DEBUG(x)
 #ifndef DEBUG
diff --git a/secure/master/misc.c b/secure/master/misc.c
index 8cdbb8c..9bb274f 100644
--- a/secure/master/misc.c
+++ b/secure/master/misc.c
@@ -61,7 +61,9 @@
     if (!stringp(exploded[i]) || exploded[i]=="" || exploded[i][0]=='#')
       exploded[i]=0;
   exploded-=({0});
-  printf("%-30s: %3d Objekt%s\n",file,i=sizeof(exploded),(i==1?"":"e"));
+  debug_message(
+      sprintf("%-30s: %3d Objekt%s\n",file,i=sizeof(exploded),(i==1?"":"e")),
+      DMSG_STAMP);
   return exploded;
 }
 
diff --git a/secure/master/players_deny.c b/secure/master/players_deny.c
index 6471243..20cf7cb 100644
--- a/secure/master/players_deny.c
+++ b/secure/master/players_deny.c
@@ -88,7 +88,7 @@
   if ( extern_call() && call_sefun("secure_level") < ARCH_LVL )
     return;
 
-  write("Loading PLDenylists\n");
+  debug_message("Loading PLDenylists\n", DMSG_STAMP);
 
   if (stringp(tmp=read_file(WHITELIST))) {
     // savefile exists
diff --git a/secure/materialdb.c b/secure/materialdb.c
index c6afafd..11d3554 100644
--- a/secure/materialdb.c
+++ b/secure/materialdb.c
@@ -19,6 +19,8 @@
 #pragma no_shadow
 #pragma pedantic
 
+#include <debug_message.h>
+
 // Die Propertydefinition reinholen
 #include <language.h>
 #include <thing/description.h>
@@ -27,6 +29,7 @@
 #include <thing/material.h>
 #include <player/description.h>
 #include <rtlimits.h>
+#include <living/comm.h>
 
 // Basisverzeichnis der Materialien
 #define MAT_DIR "/doc/materials"
@@ -47,8 +50,12 @@
 #define P_MEMBERS "members"
 #define P_MG_FRACTIONS "mg_fractions"
 
-#define LOG_ERROR(x) if(find_player("raschaua")&&find_player("raschaua")->QueryProp("mdb-debug"))tell_object(find_player("raschaua"),"MDB-Error:"+x)
-#define LOG_WARN(x) if(find_player("raschaua")&&find_player("raschaua")->QueryProp("mdb-debug"))tell_object(find_player("raschaua"),"MDB-Warn:"+x)
+#define LOG_ERROR(x) if (this_player()) this_player()->ReceiveMsg(\
+    x, MT_DEBUG|MSG_DONT_IGNORE, MA_UNKNOWN, "MDB-Error: ",\
+    "MatDB")
+#define LOG_WARN(x) if (this_player()) this_player()->ReceiveMsg(\
+    x, MT_DEBUG|MSG_DONT_IGNORE, MA_UNKNOWN, "MDB-Warn: ",\
+    "MatDB")
 
 // Prototypes:
 // (Liefert den Anteil der Materialgruppe grp an mats)
@@ -467,15 +474,23 @@
     if (!stringp(fn) || !sizeof(fn))
       fn = DOC_DIR("materialliste");
     if (file_size(fn) >= 0) {
-      printf("Datei %s existiert bereits, loesche sie\n", fn);
+      debug_message(
+          sprintf("Datei %s existiert bereits, loesche sie\n", fn),
+          DMSG_STAMP);
       rm(fn);
     }
-    if (write_file(fn, "Material Liste\n==============\n\n")) {
+    if (write_file(fn, "Material Liste\n==============\n\n"))
+    {
       dump_material(fn);
       write_file(fn, gen_doc_foot("materialgruppen"));
-      printf("Materialliste erfolgreich in Datei %s geschrieben\n", fn);
-    } else
-      printf("Konnte Liste nicht in Datei %s schreiben, Abbruch\n", fn);
+      debug_message(
+        sprintf("Materialliste erfolgreich in Datei %s geschrieben\n", fn),
+        DMSG_STAMP);
+    }
+    else
+      debug_message(
+          sprintf("Konnte Liste nicht in Datei %s schreiben, Abbruch\n", fn),
+          DMSG_STAMP);
   }
 }
 
@@ -490,15 +505,23 @@
     if (!stringp(fn) || !sizeof(fn))
       fn = DOC_DIR("materialgruppen");
     if (file_size(fn) >= 0) {
-      printf("Datei %s existiert bereits, loesche sie\n", fn);
+      debug_message(
+          sprintf("Datei %s existiert bereits, loesche sie\n", fn),
+          DMSG_STAMP);
       rm(fn);
     }
-    if (write_file(fn, "Materialgruppen\n===============\n")) {
+    if (write_file(fn, "Materialgruppen\n===============\n"))
+    {
       map(sort_array(m_indices(material_groups), #'>), #'dump_group, fn);
       write_file(fn, gen_doc_foot("materialliste"));
-      printf("Materialliste erfolgreich in Datei %s geschrieben\n", fn);
-    } else
-      printf("Konnte Liste nicht in Datei %s schreiben, Abbruch\n", fn);
+      debug_message(
+        sprintf("Materialliste erfolgreich in Datei %s geschrieben\n", fn),
+        DMSG_STAMP);
+    }
+    else
+      debug_message(
+          sprintf("Konnte Liste nicht in Datei %s schreiben, Abbruch\n", fn),
+          DMSG_STAMP);
   }
 }
 
@@ -513,14 +536,21 @@
     string txt;
     if (!stringp(fn) || !sizeof(fn))
       fn = HEADERFILE;
-    if (file_size(fn) >= 0) {
-      printf("Datei %s existiert bereits, loesche sie\n", fn);
+    if (file_size(fn) >= 0)
+    {
+      debug_message(
+          sprintf("Datei %s existiert bereits, loesche sie\n", fn),
+          DMSG_STAMP);
       rm(fn);
     }
     if (dump_material_h(fn))
-      printf("Headerdatei erfolgreich in %s geschrieben\n", fn);
+      debug_message(
+          sprintf("Headerdatei erfolgreich in %s geschrieben\n", fn),
+          DMSG_STAMP);
     else
-      printf("Konnte Headerdatei nicht in Datei %s schreiben, Abbruch\n", fn);
+      debug_message(
+        sprintf("Konnte Headerdatei nicht in Datei %s schreiben, Abbruch\n",
+                fn), DMSG_STAMP);
   }
 }
 
