diff --git a/p/daemon/svn2news.c b/p/daemon/svn2news.c
new file mode 100644
index 0000000..8cece79
--- /dev/null
+++ b/p/daemon/svn2news.c
@@ -0,0 +1,55 @@
+// MorgenGrauen MUDlib
+//
+// svn2news.c -- Setzt die Subversion-Eintraege in magier.mudlib
+//
+// $Id$
+
+// Erstellt auf Basis von rcs2news von Zook.
+
+#pragma strict_types,save_types
+#pragma no_clone,no_shadow
+
+#include <daemon.h>
+
+#define NEWSFILE "/p/daemon/save/svn2news.txt"
+#define NEWSFILEOLD "/p/daemon/save/svn2news.old"
+
+#define DEBUG(str) if (find_player("zook"))  \
+  tell_object(find_player("zook"), sprintf("svn2news: DEBUG: %O\n",str))
+
+static void checkrcs()
+{
+  string str;
+  mixed art;
+  // Letzte Eintrag sollte ein wenig her sein, damit es keine
+  // Ueberschneidungen gibt.
+  if (file_time(NEWSFILE)+1800 > time()) return;
+  if (!(str=read_file(NEWSFILE,0,10000)) || (str=="")) return;
+  art=({"magier.mudlib","SVN2NEWS",0,0,
+        "SVN-Eintraege vom "+dtime(time()),str});
+  if (("/secure/news"->WriteNote(art,1)>=1) ||
+      (("/secure/news"->RemoveNote("magier.mudlib",0)>=1) &&
+       ("/secure/news"->WriteNote(art,1)>=1)))
+    catch(rename(NEWSFILE,NEWSFILEOLD);publish);
+  else log_file("SVN2NEWS",dtime(time())+
+		" : Kann RCS-Eintraege nicht nach magier.mudlib posten!\n");
+}
+
+void reset()
+{
+  // call_out() noetig, da sonst kein weiteres reset() gerufen wird
+  // reset() wird nur gerufen bei einem call einer anderen Funktion
+  // nach einem Reset
+  call_out("checkrcs",1);
+}
+
+void create()
+{
+  seteuid(getuid());
+  reset();
+}
+
+void clean_up(int refc)
+{
+  return 0;
+}
