diff --git a/Common/GmshMessage.cpp b/Common/GmshMessage.cpp
index 39c69b3d31ce0b5d92835d3591848dd86bf313c6..bb67288dab6d5cb623f1844d70aa58bbe62a5bb5 100644
--- a/Common/GmshMessage.cpp
+++ b/Common/GmshMessage.cpp
@@ -112,6 +112,7 @@ void Msg::Exit(int level)
     PetscFinalize();
 #endif
 #if defined(HAVE_MPI)
+    if(level!=0) MPI_Abort(MPI_COMM_WORLD,level); // if abnormal exit on one cpu only
     MPI_Finalize();
 #endif
     FinalizeOnelab();