--- exit.c.0    Wed Feb  9 10:55:11 2000
+++ exit.c      Wed Feb  9 10:52:05 2000
@@ -470,43 +470,38 @@
               if ((p->exit_signal != SIGCHLD) ^ ((options & __WCLONE) != 0))
                       continue;
               flag = 1;
-               switch (p->state) {
-                       case TASK_STOPPED:
-                               if (!p->exit_code)
-                                       continue;
-                               if (!(options & WUNTRACED) && !(p->flags & PF_PTRACED))
-                                       continue;
-                               read_unlock(&tasklist_lock);
-                               retval = ru ? getrusage(p, RUSAGE_BOTH, ru) : 0;
-                               if (!retval && stat_addr)
-                                       retval = put_user((p->exit_code << 8) | 0x7f, stat_addr);
-                               if (!retval) {
-                                       p->exit_code = 0;
-                                       retval = p->pid;
-                               }
-                               goto end_wait4;
-                       case TASK_ZOMBIE:
-                               current->times.tms_cutime += p->times.tms_utime + p->times.tms_cutime;
-                               current->times.tms_cstime += p->times.tms_stime + p->times.tms_cstime;
-                               read_unlock(&tasklist_lock);
-                               retval = ru ? getrusage(p, RUSAGE_BOTH, ru) : 0;
-                               if (!retval && stat_addr)
-                                       retval = put_user(p->exit_code, stat_addr);
-                               if (retval)
-                                       goto end_wait4;
-                               retval = p->pid;
-                               if (p->p_opptr != p->p_pptr) {
-                                       write_lock_irq(&tasklist_lock);
-                                       REMOVE_LINKS(p);
-                                       p->p_pptr = p->p_opptr;
-                                       SET_LINKS(p);
-                                       write_unlock_irq(&tasklist_lock);
-                                       notify_parent(p, SIGCHLD);
-                               } else
-                                       release(p);
-                               goto end_wait4;
-                       default:
+               if (p->state == TASK_STOPPED && p->exit_code) {
+                       if (!(options & WUNTRACED) && !(p->flags & PF_PTRACED))
                               continue;
+                       read_unlock(&tasklist_lock);
+                       retval = ru ? getrusage(p, RUSAGE_BOTH, ru) : 0;
+                       if (!retval && stat_addr)
+                               retval = put_user((p->exit_code << 8) | 0x7f, stat_addr);
+                       if (!retval) {
+                               p->exit_code = 0;
+                               retval = p->pid;
+                       }
+                       goto end_wait4;
+               } else if (p->state == TASK_ZOMBIE) {
+                       current->times.tms_cutime += p->times.tms_utime + p->times.tms_cutime;
+                       current->times.tms_cstime += p->times.tms_stime + p->times.tms_cstime;
+                       read_unlock(&tasklist_lock);
+                       retval = ru ? getrusage(p, RUSAGE_BOTH, ru) : 0;
+                       if (!retval && stat_addr)
+                               retval = put_user(p->exit_code, stat_addr);
+                       if (retval)
+                               goto end_wait4;
+                       retval = p->pid;
+                       if (p->p_opptr != p->p_pptr) {
+                               write_lock_irq(&tasklist_lock);
+                               REMOVE_LINKS(p);
+                               p->p_pptr = p->p_opptr;
+                               SET_LINKS(p);
+                               write_unlock_irq(&tasklist_lock);
+                               notify_parent(p, SIGCHLD);
+                       } else
+                               release(p);
+                       goto end_wait4;
               }
       }
       read_unlock(&tasklist_lock);