--- 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);