Index: /trunk/aux/cocotron/win32/cocotron/WaltConsole/WaltConsole.c
===================================================================
--- /trunk/aux/cocotron/win32/cocotron/WaltConsole/WaltConsole.c	(revision 13176)
+++ /trunk/aux/cocotron/win32/cocotron/WaltConsole/WaltConsole.c	(revision 13177)
@@ -73,5 +73,6 @@
       for (i = 0; i < ninput_events; i++) {
         PeekConsoleInput(input, &ir, 1, &n);
-        if ((ir.EventType == KEY_EVENT)) {
+        if ((ir.EventType == KEY_EVENT) &&
+            (ir.Event.KeyEvent.uChar.UnicodeChar != 0)) {
           if (!ReadFile(input, buf, sizeof(buf), &nread, NULL)) {
             return -1;
@@ -132,4 +133,6 @@
   in = GetStdHandle(STD_INPUT_HANDLE);
   out = GetStdHandle(STD_OUTPUT_HANDLE);
+  ppid = getppid();
+  hppid = OpenProcess(PROCESS_QUERY_INFORMATION|SYNCHRONIZE,FALSE,ppid);
 
   while (1) {
@@ -141,5 +144,7 @@
       break;
     }
-    Sleep(100);
+    if (WaitForSingleObject(hppid,100)==WAIT_OBJECT_0) {
+      exit(0);
+    }
   }
 
@@ -149,7 +154,5 @@
   conout = CreateFileA("CONOUT$",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
 
-  ppid = getppid();
   procname = parent_process_name(ppid);
-  hppid = OpenProcess(PROCESS_QUERY_INFORMATION|SYNCHRONIZE,FALSE,ppid);
   if (!procname) {
     procname = "<Unknown>";
