2003-03-04  Roland McGrath  <roland@redhat.com>

	* syscall.c (get_scno) [IA64]: Do TCB_WAITEXECVE check only when
	TCB_INSYSCALL is clear, like other platforms do.
diff --git a/syscall.c b/syscall.c
index bb11869..9814a43 100644
--- a/syscall.c
+++ b/syscall.c
@@ -919,11 +919,15 @@
 		if (ia32) {
 			if (upeek(pid, PT_R1, &scno) < 0)	/* orig eax */
 				return -1;
-			/* Check if we return from execve. */
 		} else {
 			if (upeek (pid, PT_R15, &scno) < 0)
 				return -1;
 		}
+		/* Check if we return from execve. */
+		if (tcp->flags & TCB_WAITEXECVE) {
+			tcp->flags &= ~TCB_WAITEXECVE;
+			return 0;
+		}
 	} else {
 		/* syscall in progress */
 		if (upeek (pid, PT_R8, &r8) < 0)
@@ -931,11 +935,6 @@
 		if (upeek (pid, PT_R10, &r10) < 0)
 			return -1;
 	}
-	if (tcp->flags & TCB_WAITEXECVE) {
-		tcp->flags &= ~TCB_WAITEXECVE;
-		return 0;
-	}
-
 #elif defined (ARM)
 	{
 	    long pc;