diff --git a/src/logging.cc b/src/logging.cc
index 4aacd3b..b0f3055 100644
--- a/src/logging.cc
+++ b/src/logging.cc
@@ -55,7 +55,7 @@
 
   // Abort if necessary.
   if (data_->severity == FATAL) {
-    Runtime::Abort(data_->file, data_->line_number);
+    Runtime::Abort();
   }
 
   delete data_;
diff --git a/src/runtime.cc b/src/runtime.cc
index 37887e2..3f80260 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -146,7 +146,7 @@
   return abort_lock;
 }
 
-void Runtime::Abort(const char* file, int line) {
+void Runtime::Abort() {
   // Ensure that we don't have multiple threads trying to abort at once,
   // which would result in significantly worse diagnostics.
   MutexLock mu(GetAbortLock());
@@ -159,10 +159,7 @@
   AbortState state;
   LOG(INTERNAL_FATAL) << Dumpable<AbortState>(state);
 
-  // Perform any platform-specific pre-abort actions.
-  PlatformAbort(file, line);
-
-  // use abort hook if we have one
+  // Call the abort hook if we have one.
   if (Runtime::Current() != NULL && Runtime::Current()->abort_ != NULL) {
     Runtime::Current()->abort_();
     // notreached
diff --git a/src/runtime.h b/src/runtime.h
index dc61b15..b682b67 100644
--- a/src/runtime.h
+++ b/src/runtime.h
@@ -120,7 +120,7 @@
   // This isn't marked ((noreturn)) because then gcc will merge multiple calls
   // in a single function together. This reduces code size slightly, but means
   // that the native stack trace we get may point at the wrong call site.
-  static void Abort(const char* file, int line);
+  static void Abort();
 
   // Attaches the calling native thread to the runtime.
   void AttachCurrentThread(const char* thread_name, bool as_daemon, Object* thread_group);
@@ -246,7 +246,6 @@
   void SetCompileTimeClassPath(const ClassLoader* class_loader, std::vector<const DexFile*>& class_path);
 
  private:
-  static void PlatformAbort(const char*, int);
   static void InitPlatformSignalHandlers();
 
   Runtime();
diff --git a/src/runtime_android.cc b/src/runtime_android.cc
index b64f8a1..2013294 100644
--- a/src/runtime_android.cc
+++ b/src/runtime_android.cc
@@ -18,10 +18,6 @@
 
 namespace art {
 
-void Runtime::PlatformAbort(const char*, int) {
-  // On a device, debuggerd will give us a stack trace. Nothing to do here.
-}
-
 void Runtime::InitPlatformSignalHandlers() {
   // On a device, debuggerd will give us a stack trace. Nothing to do here.
 }
diff --git a/src/runtime_linux.cc b/src/runtime_linux.cc
index c4d4b3c..b7e7d01 100644
--- a/src/runtime_linux.cc
+++ b/src/runtime_linux.cc
@@ -56,11 +56,11 @@
   }
 
   // backtrace_symbols(3) gives us lines like this:
-  // "/usr/local/google/home/enh/a1/out/host/linux-x86/bin/../lib/libartd.so(_ZN3art7Runtime13PlatformAbortEPKci+0x15b) [0xf76c5af3]"
+  // "/usr/local/google/home/enh/a1/out/host/linux-x86/bin/../lib/libartd.so(_ZN3art7Runtime5AbortEPKci+0x15b) [0xf76c5af3]"
   // "[0xf7b62057]"
 
   // We extract the pieces and demangle, so we can produce output like this:
-  // libartd.so:-1]    #00 art::Runtime::PlatformAbort(char const*, int) +0x15b [0xf770dd51]
+  // libartd.so:-1]    #00 art::Runtime::Abort(char const*, int) +0x15b [0xf770dd51]
 
   for (size_t i = 0; i < frame_count; ++i) {
     std::string text(symbols[i]);
@@ -180,6 +180,9 @@
     signal_name = "SIGPIPE";
   }
 
+  // Remove ourselves as signal handler for this signal, in case of recursion.
+  signal(signal_number, SIG_DFL);
+
   LOG(INTERNAL_FATAL) << "*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\n"
                       << StringPrintf("Fatal signal %d (%s), code %d (%s)",
                                       signal_number, signal_name,
@@ -200,11 +203,6 @@
   }
 }
 
-void Runtime::PlatformAbort(const char* /*file*/, int /*line_number*/) {
-  // On the host, we don't have debuggerd to dump a stack for us when we LOG(FATAL).
-  Backtrace();
-}
-
 void Runtime::InitPlatformSignalHandlers() {
   // On the host, we don't have debuggerd to dump a stack for us when something unexpected happens.
   struct sigaction action;
