diff --git a/libc/bionic/ndk_cruft.cpp b/libc/bionic/ndk_cruft.cpp
index 016b476..dbacf18 100644
--- a/libc/bionic/ndk_cruft.cpp
+++ b/libc/bionic/ndk_cruft.cpp
@@ -52,6 +52,9 @@
 // LP64 doesn't need to support any legacy cruft.
 #if !defined(__LP64__)
 
+// By the time any NDK-built code is running, there are plenty of threads.
+int __isthreaded = 1;
+
 // These were accidentally declared in <unistd.h> because we stupidly used to inline
 // getpagesize() and __getpageshift(). Needed for backwards compatibility with old NDK apps.
 unsigned int __page_size = PAGE_SIZE;
diff --git a/libc/bionic/pthread_create.cpp b/libc/bionic/pthread_create.cpp
index 9f4481f..9197aa3 100644
--- a/libc/bionic/pthread_create.cpp
+++ b/libc/bionic/pthread_create.cpp
@@ -49,8 +49,6 @@
 void __init_user_desc(struct user_desc*, bool, void*);
 #endif
 
-extern "C" int __isthreaded;
-
 // This code is used both by each new pthread and the code that initializes the main thread.
 void __init_tls(pthread_internal_t* thread) {
   // Slot 0 must point to itself. The x86 Linux kernel reads the TLS from %fs:0.
@@ -230,9 +228,6 @@
                    void* (*start_routine)(void*), void* arg) {
   ErrnoRestorer errno_restorer;
 
-  // Inform the rest of the C library that at least one thread was created.
-  __isthreaded = 1;
-
   pthread_attr_t thread_attr;
   if (attr == NULL) {
     pthread_attr_init(&thread_attr);
diff --git a/libc/stdlib/exit.c b/libc/stdlib/exit.c
index 10ce674..510cb83 100644
--- a/libc/stdlib/exit.c
+++ b/libc/stdlib/exit.c
@@ -1,4 +1,3 @@
-/*	$OpenBSD: exit.c,v 1.12 2007/09/03 14:40:16 millert Exp $ */
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
  * All rights reserved.
@@ -28,39 +27,13 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <stdlib.h>
 #include <unistd.h>
 
-/*
- * This variable is zero until a process has created a thread.
- * It is used to avoid calling locking functions in libc when they
- * are not required. By default, libc is intended to be(come)
- * thread-safe, but without a (significant) penalty to non-threaded
- * processes.
- */
-int     __isthreaded    = 0;
-
-/* BEGIN android-added: using __cxa_finalize and __cxa_thread_finalize */
 extern void __cxa_finalize(void* dso_handle);
 extern void __cxa_thread_finalize();
-/* END android-added */
 
-/*
- * Exit, flushing stdio buffers if necessary.
- */
-void
-exit(int status)
-{
-  /* BEGIN android-added: call thread_local d-tors */
+void exit(int status) {
   __cxa_thread_finalize();
-  /* END android-added */
-
-	/*
-	 * Call functions registered by atexit() or _cxa_atexit()
-	 * (including the stdio cleanup routine) and then _exit().
-	 */
-	__cxa_finalize(NULL);
-	_exit(status);
+  __cxa_finalize(NULL);
+  _exit(status);
 }
diff --git a/libc/upstream-openbsd/android/include/openbsd-compat.h b/libc/upstream-openbsd/android/include/openbsd-compat.h
index caea45a..bec860b 100644
--- a/libc/upstream-openbsd/android/include/openbsd-compat.h
+++ b/libc/upstream-openbsd/android/include/openbsd-compat.h
@@ -81,7 +81,4 @@
 __LIBC_HIDDEN__ extern char* __findenv(const char*, int, int*);
 __LIBC_HIDDEN__ extern char* _mktemp(char*);
 
-/* TODO: hide this when android_support.a is fixed (http://b/16298580).*/
-/*__LIBC_HIDDEN__*/ extern int __isthreaded;
-
 #endif
