diff -Naur -X exclude-files ac_cur/arch/um/drivers/ethertap_user.c ac/arch/um/drivers/ethertap_user.c
--- ac_cur/arch/um/drivers/ethertap_user.c	Mon Jul 16 11:03:58 2001
+++ ac/arch/um/drivers/ethertap_user.c	Mon Jul 16 12:00:10 2001
@@ -140,7 +140,6 @@
 {
 	struct ethertap_data *pri = data;
 
-	printk("Closing down ethertap\n");
 	close(fd);
 	shutdown(pri->helper_fd, SHUT_RDWR);
 }
diff -Naur -X exclude-files ac_cur/arch/um/drivers/mconsole_kern.c ac/arch/um/drivers/mconsole_kern.c
--- ac_cur/arch/um/drivers/mconsole_kern.c	Mon Jul 16 11:05:05 2001
+++ ac/arch/um/drivers/mconsole_kern.c	Mon Jul 16 12:00:10 2001
@@ -49,9 +49,9 @@
 				 list);
 		list_del(&req->list);
 		done = list_empty(&mc_requests);
+		restore_flags(flags);
 		handle_request(&req->request);
 		kfree(req);
-		restore_flags(flags);
 	} while(!done);
 }
 
diff -Naur -X exclude-files ac_cur/arch/um/drivers/net_kern.c ac/arch/um/drivers/net_kern.c
--- ac_cur/arch/um/drivers/net_kern.c	Mon Jul 16 11:03:58 2001
+++ ac/arch/um/drivers/net_kern.c	Mon Jul 16 12:00:10 2001
@@ -181,7 +181,7 @@
 	netif_stop_queue(dev);
 	spin_lock(&lp->lock);
 
-	free_irq_fd(dev);
+	free_irq(dev->irq, dev);
 	(*lp->close)(lp->fd, &lp->user);
 	lp->fd = -1;
 	list_del(&lp->list);
diff -Naur -X exclude-files ac_cur/arch/um/include/mconsole.h ac/arch/um/include/mconsole.h
--- ac_cur/arch/um/include/mconsole.h	Mon Jul 16 11:04:49 2001
+++ ac/arch/um/include/mconsole.h	Mon Jul 16 12:00:10 2001
@@ -23,18 +23,6 @@
 	void (*handler)(struct mconsole_request *req);
 };
 
-struct config_command
-{
-	char *command;
-	int (*handler)(char *args);
-};
-
-struct remove_command
-{
-	char *command;
-	int (*handler)(void);
-};
-
 extern char socket_name[];
 
 extern int unlink_socket(void);
diff -Naur -X exclude-files ac_cur/arch/um/include/mconsole_kern.h ac/arch/um/include/mconsole_kern.h
--- ac_cur/arch/um/include/mconsole_kern.h	Mon Jul 16 11:05:05 2001
+++ ac/arch/um/include/mconsole_kern.h	Mon Jul 16 12:00:10 2001
@@ -21,7 +21,17 @@
 	int (*remove)(char *);
 };
 
+#ifdef CONFIG_MCONSOLE
+
 extern void mconsole_register_dev(struct mc_device *new);
+
+#else
+
+static inline void mconsole_register_dev(struct mc_device *new)
+{
+}
+
+#endif
 
 #endif
 
diff -Naur -X exclude-files ac_cur/arch/um/kernel/process.c ac/arch/um/kernel/process.c
--- ac_cur/arch/um/kernel/process.c	Mon Jul 16 11:03:59 2001
+++ ac/arch/um/kernel/process.c	Mon Jul 16 12:00:10 2001
@@ -89,6 +89,10 @@
 		    SIGUSR1, SIGIO, -1);
 	set_handler(SIGFPE, (__sighandler_t) sig_handler, flags, 
 		    SIGUSR1, SIGIO, -1);
+	set_handler(SIGILL, (__sighandler_t) sig_handler, flags, 
+		    SIGUSR1, SIGIO, -1);
+	set_handler(SIGBUS, (__sighandler_t) sig_handler, flags, 
+		    SIGUSR1, SIGIO, -1);
 	set_handler(SIGUSR2, process_stack_handler, SA_NODEFER, SIGUSR1, -1);
 	change_sig(SIGUSR2, 1);
 	if(usr1_handler) set_handler(SIGUSR1, usr1_handler, flags, -1);
diff -Naur -X exclude-files ac_cur/arch/um/kernel/reboot.c ac/arch/um/kernel/reboot.c
--- ac_cur/arch/um/kernel/reboot.c	Mon Jul 16 11:03:59 2001
+++ ac/arch/um/kernel/reboot.c	Mon Jul 16 12:00:10 2001
@@ -17,7 +17,8 @@
 	for_each_task(p){
 		if(p->thread.extern_pid != me) kill_pid(p->thread.extern_pid);
 	}
-	kill_pid(init_task.thread.extern_pid);
+	if(init_task.thread.extern_pid != me) 
+		kill_pid(init_task.thread.extern_pid);
 }
 
 void machine_restart(char * __unused)
diff -Naur -X exclude-files ac_cur/arch/um/kernel/time_kern.c ac/arch/um/kernel/time_kern.c
--- ac_cur/arch/um/kernel/time_kern.c	Mon Jul 16 11:03:59 2001
+++ ac/arch/um/kernel/time_kern.c	Mon Jul 16 12:00:10 2001
@@ -33,6 +33,7 @@
 {
 	int ticks = missed_ticks;
 
+        if(!timer_irq_inited) return;
 	missed_ticks = 0;
 	while(ticks--) do_IRQ(TIMER_IRQ, user_mode);
 }
diff -Naur -X exclude-files ac_cur/arch/um/kernel/trap_kern.c ac/arch/um/kernel/trap_kern.c
--- ac_cur/arch/um/kernel/trap_kern.c	Mon Jul 16 11:05:05 2001
+++ ac/arch/um/kernel/trap_kern.c	Mon Jul 16 12:00:10 2001
@@ -162,7 +162,7 @@
 				       "errno = %d\n", errno);
 			gdb_pid = -1;
 		}
-		else kill(debugger_pid, SIGKILL);
+		else ptrace(PTRACE_KILL, debugger_pid, 0, 0);
 		debugger_pid = -1;
 	}
 	close_chan_pair(&gdb_chan);
diff -Naur -X exclude-files ac_cur/arch/um/kernel/trap_user.c ac/arch/um/kernel/trap_user.c
--- ac_cur/arch/um/kernel/trap_user.c	Mon Jul 16 11:04:49 2001
+++ ac/arch/um/kernel/trap_user.c	Mon Jul 16 12:00:10 2001
@@ -220,6 +220,8 @@
 			case SIGALRM:
 			case SIGVTALRM:
 			case SIGFPE:
+			case SIGBUS:
+			case SIGILL:
 				if(!tracing && (debugger_pid != -1)){
 					child_signal(pid, status);
 					continue;
@@ -232,8 +234,6 @@
 			case SIGCHLD:
 				sig = 0;
 				break;
-			case SIGBUS:
-			case SIGILL:
 			default:
 				if(debugger_pid != -1){
 					child_signal(pid, status);
@@ -300,6 +300,8 @@
 static void (*handlers[])(int, void *, int) = {
 	[ SIGTRAP ] relay_signal,
 	[ SIGFPE ] relay_signal,
+	[ SIGILL ] relay_signal,
+	[ SIGBUS ] relay_signal,
 	[ SIGSEGV] segv_handler,
 	[ SIGIO ] sigio_handler,
 	[ SIGVTALRM ] timer_handler,
diff -Naur -X exclude-files ac_cur/arch/um/kernel/user_syms.c ac/arch/um/kernel/user_syms.c
--- ac_cur/arch/um/kernel/user_syms.c	Mon Jul 16 11:05:00 2001
+++ ac/arch/um/kernel/user_syms.c	Mon Jul 16 12:00:10 2001
@@ -99,4 +99,7 @@
 EXPORT_SYMBOL(memcpy);
 EXPORT_SYMBOL(getuid);
 
+EXPORT_SYMBOL(memset);
+EXPORT_SYMBOL(strstr);
+
 EXPORT_SYMBOL(find_iomem);