diff --git a/Common/GmshMessage.cpp b/Common/GmshMessage.cpp
index 17cc855d7116fc683eb123cad4cc038bca21f75b..86fe9bbfef0250806bbc049f2777b9e228373d8b 100644
--- a/Common/GmshMessage.cpp
+++ b/Common/GmshMessage.cpp
@@ -75,6 +75,7 @@ void Msg::Init(int argc, char **argv)
 #endif
 #if defined(HAVE_PETSC)
   PetscInitialize(&argc, &argv, PETSC_NULL, PETSC_NULL);
+  PetscPopSignalHandler();
 #endif
 #if defined(HAVE_SLEPC)
   SlepcInitialize(&argc, &argv, PETSC_NULL, PETSC_NULL);