diff --git a/distrib/sdl-1.2.12/src/video/Xext/Xxf86dga/XF86DGA.c b/distrib/sdl-1.2.12/src/video/Xext/Xxf86dga/XF86DGA.c
index 346e9e7..34abbb0 100644
--- a/distrib/sdl-1.2.12/src/video/Xext/Xxf86dga/XF86DGA.c
+++ b/distrib/sdl-1.2.12/src/video/Xext/Xxf86dga/XF86DGA.c
@@ -601,9 +601,9 @@
 	    XSync(sp->display, False);
 	}
         if (WIFEXITED(status))
-	    _exit(0);
+	    exit(0);
 	else
-	    _exit(-1);
+	    exit(-1);
     }
     return pid;
 }
@@ -652,7 +652,7 @@
     static char beenhere = 0;
 
     if (beenhere)
-	_exit(3);
+	exit(3);
     beenhere = 1;
 
     for (i = 0; i < numScrs; i++) {
@@ -660,7 +660,7 @@
 	SDL_NAME(XF86DGADirectVideo)(sp->display, sp->screen, 0);
 	XSync(sp->display, False);
     }
-    _exit(3);
+    exit(3);
 }
 
 Bool
diff --git a/exec.c b/exec.c
index b8a473f..c71ef66 100644
--- a/exec.c
+++ b/exec.c
@@ -1527,7 +1527,7 @@
         logfile = fopen(logfilename, log_append ? "a" : "w");
         if (!logfile) {
             perror(logfilename);
-            _exit(1);
+            exit(1);
         }
 #if !defined(CONFIG_SOFTMMU)
         /* must avoid mmap() usage of glibc by setting a buffer "by hand" */
diff --git a/net-android.c b/net-android.c
index 6459eff..50b816c 100644
--- a/net-android.c
+++ b/net-android.c
@@ -1485,7 +1485,7 @@
         *parg++ = (char *)ifname;
         *parg++ = NULL;
         execv(setup_script, args);
-        _exit(1);
+        exit(1);
     } else if (pid > 0) {
         while (waitpid(pid, &status, 0) != pid) {
             /* loop */
diff --git a/net.c b/net.c
index 1deca85..219ed30 100644
--- a/net.c
+++ b/net.c
@@ -1357,7 +1357,7 @@
         *parg++ = (char *)ifname;
         *parg++ = NULL;
         execv(setup_script, args);
-        _exit(1);
+        exit(1);
     } else if (pid > 0) {
         while (waitpid(pid, &status, 0) != pid) {
             /* loop */
