diff --git a/src/cxa_default_handlers.cpp b/src/cxa_default_handlers.cpp
index 403ed04..726f7eb 100644
--- a/src/cxa_default_handlers.cpp
+++ b/src/cxa_default_handlers.cpp
@@ -17,7 +17,6 @@
 #include "cxa_handlers.hpp"
 #include "cxa_exception.hpp"
 #include "private_typeinfo.h"
-#include "cxa_default_handlers.hpp"
 
 __attribute__((noreturn))
 static void default_handler(const char* cause)
@@ -76,14 +75,14 @@
 }
 
 
-__attribute__((visibility("hidden"), noreturn))
-void default_terminate_handler() 
+__attribute__((noreturn))
+static void default_terminate_handler() 
 {
 	default_handler("terminate");
 }
 
-__attribute__((visibility("hidden"), noreturn))
-void default_unexpected_handler() 
+__attribute__((noreturn))
+static void default_unexpected_handler() 
 {
 	default_handler("unexpected");
 }
@@ -103,7 +102,7 @@
 {
 	if (func == 0)
 		func = default_unexpected_handler;
-	return __sync_swap(&__cxxabiapple::__cxa_unexpected_handler, func);
+	return __sync_swap(&__cxa_unexpected_handler, func);
 }
 
 terminate_handler
@@ -111,7 +110,7 @@
 {
 	if (func == 0)
 		func = default_terminate_handler;
-	return __sync_swap(&__cxxabiapple::__cxa_terminate_handler, func);
+	return __sync_swap(&__cxa_terminate_handler, func);
 }
 
 };
diff --git a/src/cxa_default_handlers.hpp b/src/cxa_default_handlers.hpp
deleted file mode 100644
index 6b02e97..0000000
--- a/src/cxa_default_handlers.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//===------------------------- cxa_default_handlers.cpp -------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//
-// This file declares the default terminate_handler and unexpected_handler.
-//===----------------------------------------------------------------------===//
-
-
-__attribute__((visibility("hidden"), noreturn))
-void
-default_terminate_handler();
-
-__attribute__((visibility("hidden"), noreturn))
-void
-default_unexpected_handler();
diff --git a/src/cxa_exception.hpp b/src/cxa_exception.hpp
index cf019d4..66f05c4 100644
--- a/src/cxa_exception.hpp
+++ b/src/cxa_exception.hpp
@@ -11,6 +11,9 @@
 //  
 //===----------------------------------------------------------------------===//
 
+#ifndef _CXA_EXCEPTION_H
+#define _CXA_EXCEPTION_H
+
 #include <exception> // for std::unexpected_handler and std::terminate_handler
 #include <cxxabi.h>
 #include "unwind.h"
@@ -116,3 +119,5 @@
 
 #pragma GCC visibility pop
 }
+
+#endif  // _CXA_EXCEPTION_H
diff --git a/src/cxa_handlers.cpp b/src/cxa_handlers.cpp
index 97f1347..3150c0a 100644
--- a/src/cxa_handlers.cpp
+++ b/src/cxa_handlers.cpp
@@ -17,18 +17,15 @@
 #include "cxxabi.h"
 #include "cxa_handlers.hpp"
 #include "cxa_exception.hpp"
-#include "cxa_default_handlers.hpp"
 #include "private_typeinfo.h"
 
-std::new_handler __cxa_new_handler = 0;
-
 namespace std
 {
 
 unexpected_handler
 get_unexpected() _NOEXCEPT
 {
-    return __cxxabiapple::__cxa_unexpected_handler;
+    return __cxa_unexpected_handler;
 }
 
 __attribute__((visibility("hidden"), noreturn))
@@ -50,7 +47,7 @@
 terminate_handler
 get_terminate() _NOEXCEPT
 {
-    return __cxxabiapple::__cxa_terminate_handler;
+    return __cxa_terminate_handler;
 }
 
 __attribute__((visibility("hidden"), noreturn))
@@ -98,16 +95,18 @@
     __terminate(get_terminate());
 }
 
+new_handler __cxa_new_handler = 0;
+
 new_handler
 set_new_handler(new_handler handler) _NOEXCEPT
 {
-    return __sync_swap(&__cxxabiapple::__cxa_new_handler, handler);
+    return __sync_swap(&__cxa_new_handler, handler);
 }
 
 new_handler
 get_new_handler() _NOEXCEPT
 {
-    return __cxxabiapple::__cxa_new_handler;
+    return __cxa_new_handler;
 }
 
 }  // std
diff --git a/src/cxa_handlers.hpp b/src/cxa_handlers.hpp
index a7f582c..95a320d 100644
--- a/src/cxa_handlers.hpp
+++ b/src/cxa_handlers.hpp
@@ -10,6 +10,9 @@
 //   unexpected_handler, and new_handler.
 //===----------------------------------------------------------------------===//
 
+#ifndef _CXA_HANDLERS_H
+#define _CXA_HANDLERS_H
+
 #include <exception>
 
 namespace std
@@ -24,3 +27,14 @@
 __terminate(terminate_handler func) _NOEXCEPT;
 
 }  // std
+
+extern "C"
+{
+
+extern void (*__cxa_terminate_handler)();
+extern void (*__cxa_unexpected_handler)();
+extern void (*__cxa_new_handler)();
+
+} // extern "C"
+
+#endif  // _CXA_HANDLERS_H
