diff --git a/room/death/death_room.c b/room/death/death_room.c
index 5e59f20..1619e39 100644
--- a/room/death/death_room.c
+++ b/room/death/death_room.c
@@ -31,7 +31,8 @@
 public int SmartLog( string creat, string myname, string str, string date );
 public mixed hier_geblieben( mixed dest, int methods, string direction,
                              string textout, string textin );
-public void init()
+
+public varargs void init(object oldenv)
 {
   this_player()->move("/room/death/virtual/death_room_"+getuid(this_player()),
 	     M_NOCHECK|M_SILENT|M_NO_SHOW);
diff --git a/room/death/death_room_vc.c b/room/death/death_room_vc.c
index 71038fb..e0e4986 100644
--- a/room/death/death_room_vc.c
+++ b/room/death/death_room_vc.c
@@ -57,7 +57,7 @@
   return;
 }
 
-public void exit(object liv)
+public varargs void exit(object liv, object dest)
 {
   call_out("test_remove",2);
   return;
@@ -71,12 +71,12 @@
                       lambda( ({'x/*'*/}), ({#'destruct, 'x}) ) );
 }
 
-public void init()
+public varargs void init(object oldenv)
 {  
   string prayroom;
   int res;
 
-  ::init();
+  ::init(oldenv);
   if ( !query_once_interactive(this_player()) ){
       call_out( "deep_destruct", 0, this_player() );
       return;
diff --git a/room/jail.c b/room/jail.c
index 1331223..9cdcc55 100644
--- a/room/jail.c
+++ b/room/jail.c
@@ -22,9 +22,9 @@
   SetProp(P_INDOORS,1);
 }
 
-void init()
+public varargs void init(object oldenv)
 {
-  ::init();
+  ::init(oldenv);
   if (!query_once_interactive(this_player()))
     return;
   if ( IS_DEPUTY(this_player()) ) // EM+ sind sowieso Deputies
@@ -42,7 +42,7 @@
 }
 
 // Move-Hook austragen.
-void exit(object liv) {
+varargs void exit(object liv, object dest) {
   if (objectp(liv) && !IS_DEPUTY(liv))
     liv->HUnregisterFromHook(H_HOOK_MOVE,this_object());
 }
diff --git a/room/welcome/std.c b/room/welcome/std.c
index eae3cee..673681a 100644
--- a/room/welcome/std.c
+++ b/room/welcome/std.c
@@ -39,11 +39,11 @@
   }, F_QUERY_METHOD);
 }
 
-void init() {
+public varargs void init(object oldenv) {
   set_next_reset(300);
   if ( objectp(PL) )
     call_out("Sequenz", 0, 0);
-  return ::init();
+  return ::init(oldenv);
 }
 
 // Nix resetten, aber Raum entsorgen, wenn kein Spieler drin.
