diff -p -up mkinitrd-6.0.37/nash/hotplug.c.killhotplug mkinitrd-6.0.37/nash/hotplug.c --- mkinitrd-6.0.37/nash/hotplug.c.killhotplug 2008-03-17 02:51:15.000000000 +0100 +++ mkinitrd-6.0.37/nash/hotplug.c 2008-08-27 12:13:47.000000000 +0200 @@ -547,6 +547,7 @@ handle_events(nashContext *nc) nashLogger(nc, NASH_ERROR, "parent exited without telling us\n"); close(nc->hp_childfd); nc->hp_childfd = -1; + doexit = 1; break; } count += rc; diff -p -up mkinitrd-6.0.37/nash/nash.c.killhotplug mkinitrd-6.0.37/nash/nash.c --- mkinitrd-6.0.37/nash/nash.c.killhotplug 2008-04-01 18:01:53.000000000 +0200 +++ mkinitrd-6.0.37/nash/nash.c 2008-08-27 12:09:55.000000000 +0200 @@ -1350,6 +1350,7 @@ switchrootCommand(char * cmd, char * end eprintf("WARNING: can't access %s\n", initargs[0]); } dm_lib_exit(); /* ARRGH */ + nashHotplugKill(_nash_context); execv(initargs[0], initargs); eprintf("exec of init (%s) failed!!!: %m\n", initargs[0]);