diff --git a/src/utils/SignalManager.cpp b/src/utils/SignalManager.cpp
index c2e518a47297bc1cb5eb25d23f38b6e7afebe5a6..319765461db6d8d6c356e21cd2942e8881976934 100644
--- a/src/utils/SignalManager.cpp
+++ b/src/utils/SignalManager.cpp
@@ -12,6 +12,8 @@
 #include <pastis_config.hpp>
 #include <rang.hpp>
 
+#include <Messenger.hpp>
+
 std::string SignalManager::s_pause_on_error = "auto";
 void SignalManager::setPauseForDebug(const std::string& pause_on_error)
 {
@@ -34,24 +36,23 @@ std::string SignalManager::signalName(const int& signal)
 void SignalManager::pauseForDebug(const int& signal)
 {
   if (std::string(PASTIS_BUILD_TYPE) != "Release") {
-    if ((ConsoleManager::isTerminal(pout()) and
-         (s_pause_on_error == "auto")) or
+#warning should try to detect if outputs to a terminal (buggy with mpi)
+    if (// (ConsoleManager::isTerminal(pout()) and (s_pause_on_error == "auto")) or
         (s_pause_on_error == "yes")) {
-      pout() << "\n======================================\n";
-      pout() << rang::style::reset
-             << rang::fg::reset
-             << rang::style::bold;
-      pout() << "to attach gdb to this process run\n";
-      pout() << "\tgdb -pid "
-             << rang::fg::red
-             << getpid()
-             << rang::fg::reset
-             << '\n';
-      pout() << "else press Control-C to exit\n";
-      pout() << rang::style::reset;
-      pout() << "======================================\n";
-      pout() << std::flush;
-
+      std::cerr << "\n======================================\n"
+		<< rang::style::reset
+		<< rang::fg::reset
+		<< rang::style::bold
+		<< "to attach gdb to this process run\n"
+		<< "\tgdb -pid "
+		<< rang::fg::red
+		<< getpid()
+		<< rang::fg::reset
+		<< '\n'
+		<< "else press Control-C to exit\n"
+		<< rang::style::reset
+		<< "======================================\n"
+		<< std::flush;
       pause();
     }
   }
@@ -66,6 +67,9 @@ void SignalManager::handler(int signal)
   std::signal(SIGINT,  SIG_DFL);
   std::signal(SIGABRT, SIG_DFL);
 
+  BacktraceManager bm;
+  std::cerr << bm << '\n';
+
   std::exception_ptr eptr = std::current_exception();
   try {
     if (eptr) {
@@ -73,17 +77,17 @@ void SignalManager::handler(int signal)
     }
   }
   catch(const AssertError& assert_error) {
-    perr() << assert_error << '\n';
+    std::cerr << assert_error << '\n';
   }
   catch(...) {
-    perr() << "Unknown exception!\n";
+    std::cerr << "Unknown exception!\n";
   }
 
-  perr() << "\n *** "
+  std::cerr << "\n *** "
 	    << rang::style::reset
 	    << rang::fg::reset
-	    << rang::style::bold;
-  perr() << "Signal "
+	    << rang::style::bold
+	    << "Signal "
     	    << rang::fgB::red
 	    << signalName(signal)
     	    << rang::fg::reset
@@ -91,9 +95,6 @@ void SignalManager::handler(int signal)
 	    << rang::style::reset
 	    << " ***\n";
 
-  BacktraceManager bm;
-  perr() << bm << '\n';
-
   SignalManager::pauseForDebug(signal);
  }