diff --git a/obj/vitem_proxy.c b/obj/vitem_proxy.c
index 5a957e3..333d6ce 100644
--- a/obj/vitem_proxy.c
+++ b/obj/vitem_proxy.c
@@ -2,6 +2,10 @@
 
 inherit "/std/container";
 #include <moving.h>
+#include <errord.h>
+#include <config.h>
+#include <language.h>
+#include <living/comm.h>
 
 object cloner;
 
@@ -49,3 +53,60 @@
   }
   return 0;
 }
+
+// Fehler werden nicht an diesem Objekt eingetragen, sondern am erzeugenden
+// Objekt. Wenn das unbekannt ist, wird das Standardverfahren zum Logging
+// verwendet.
+public int SmartLog(string unused, string error_type, string meldung,
+                    string date)
+{
+  // Wenn kein Cloner, loggt der Aufrufer (vermutlich an diesem Objekt).
+  // Und ausserdem nur Meldungen von Spielershells akzeptieren.
+  if (!cloner
+      || strstr(load_name(previous_object()),"/std/shells/") == -1)
+    return 0;
+
+  mapping err = ([ F_PROG: "unbekannt",
+           F_LINE: 0,
+           F_MSG: meldung,
+           F_OBJ: cloner
+         ]);
+  string desc="etwas unbekanntes";
+  switch(error_type) {
+    case "BUGS":
+      desc="einen Fehler";
+      err[F_TYPE]=T_REPORTED_ERR;
+      break;
+    case "DETAILS":
+      desc="ein fehlendes Detail";
+      err[F_TYPE]=T_REPORTED_MD;
+      break;
+    case "IDEA":
+      desc="eine Idee";
+      err[F_TYPE]=T_REPORTED_IDEA;
+      break;
+    case "TYPO":
+      desc="einen Typo";
+      err[F_TYPE]=T_REPORTED_TYPO;
+      break;
+    case "SYNTAX":
+      desc="einen Syntaxhinweis";
+      err[F_TYPE]=T_REPORTED_SYNTAX;
+      break;
+  }
+  // Eintragung in die Fehler-DB
+  string hashkey = (string)ERRORD->LogReportedError(err);
+  if (stringp(hashkey))
+  {
+    previous_object()->ReceiveMsg(sprintf(
+          "Ein kleiner Fehlerteufel hat D%s an %s unter der ID %s "
+          "notiert.",
+          (cloner->IsRoom() ? "diesem Raum" : cloner->name(WEM,1)), desc,
+          hashkey || "N/A"),
+        MT_NOTIFICATION | MSG_DONT_BUFFER | MSG_DONT_STORE | MSG_DONT_IGNORE,
+        MA_UNKNOWN, 0, this_object());
+    return 1; // wurde erfolgreich protokolliert.
+  }
+
+  return 0; // nicht erfolgreich, Aufrufer muss protokollieren.
+}
