diff --git a/obj/tools/fehlerteufel.c b/obj/tools/fehlerteufel.c
index c892cfb..c8bbba5 100644
--- a/obj/tools/fehlerteufel.c
+++ b/obj/tools/fehlerteufel.c
@@ -821,7 +821,7 @@
 public string QueryOwner() {return owner;}
 public mixed QueryIssueList() {return issuelist;}
 
-void create() {
+protected void create() {
     if (!clonep(ME))
         return;
     ::create(); 
@@ -874,7 +874,7 @@
     AddCmd(({"fehlereingabe", "feingabe"}), "CmdFehlerEingabe");
 }
 
-void init()
+public varargs void init(object origin)
 {
     if (find_call_out("remove") != -1) return;
 
diff --git a/obj/tools/merkzettel/merkzettel.c b/obj/tools/merkzettel/merkzettel.c
index 70447ab..e92c4fc 100644
--- a/obj/tools/merkzettel/merkzettel.c
+++ b/obj/tools/merkzettel/merkzettel.c
@@ -27,7 +27,7 @@
 static string owner; //UID des Besitzers, wird in P_AUTOLOAD gespeichert
 //static int *cache; //nach Prioritaet sortiertes Array der IDs
 
-void create() {
+protected void create() {
   ::create();
   SetProp(P_NAME, "Merkzettel");
   SetProp(P_SHORT, "Ein Merkzettel");
@@ -1002,7 +1002,7 @@
   return(liste-filter(liste,#'note_filter,NOTE_FINISHED));
 }
 
-void init() {
+public varargs void init(object origin) {
   ::init();
   //wenn kein Env, Env kein magier oder nicht der Eigentuemer ist: weg
   if (!objectp(environment()) || !IS_LEARNER(environment())
diff --git a/obj/tools/newstool.c b/obj/tools/newstool.c
index 0e67197..f91eeb6 100644
--- a/obj/tools/newstool.c
+++ b/obj/tools/newstool.c
@@ -8,7 +8,7 @@
 
 #define UA PL->_unparsed_args()
 
-void create()
+protected void create()
 {
   string str;
   if (!clonep(this_object())) return;
@@ -39,7 +39,7 @@
   SetProp(P_NODROP,1);
 }
 
-void init()
+public varargs void init(object origin)
 {
   add_action("addg","addg");
   add_action("removeg","removeg");
diff --git a/obj/tools/tester/test.c b/obj/tools/tester/test.c
index dd70fa8..df4d00b 100644
--- a/obj/tools/tester/test.c
+++ b/obj/tools/tester/test.c
@@ -164,7 +164,7 @@
                scanerr[0],scanerr[1],END):""));
 }
 
-void create()
+protected void create()
 {
     if (!clonep(ME))
         return;
@@ -207,7 +207,7 @@
     AddCmd( "otdir","dirtesten" );
 }
 
-void init()
+public varargs void init(object origin)
 {
     ::init();
     if (PL->QueryProp(P_TESTPLAYER) || IS_LEARNER(PL))
