diff --git a/lustre/tests/write_append_truncate.c b/lustre/tests/write_append_truncate.c
index 7bfb121cb61d2ccc5c84788033dfebe577fabf0f..d977b898114dd37b005edf464d94360a83b44e11 100644
--- a/lustre/tests/write_append_truncate.c
+++ b/lustre/tests/write_append_truncate.c
@@ -60,6 +60,7 @@ void rprintf(int rank, int loop, const char *fmt, ...)
         vprintf(fmt, ap);
 
         MPI_Abort(MPI_COMM_WORLD, 1);
+        exit(1); /* shouldn't be needed, but some MPI_Abort()s are broken */
 }
 
 int main(int argc, char *argv[])
diff --git a/lustre/tests/write_disjoint.c b/lustre/tests/write_disjoint.c
index c9ffae697ab9f8457995f5488ec8ddca91b1463a..0be27e9fcffc969bc75b60efc8065913bb24d400 100644
--- a/lustre/tests/write_disjoint.c
+++ b/lustre/tests/write_disjoint.c
@@ -37,6 +37,7 @@ void rprintf(int rank, int loop, const char *fmt, ...)
         vprintf(fmt, ap);
  
         MPI_Abort(MPI_COMM_WORLD, 1);
+        exit(1); /* shouldn't be needed, but some MPI_Abort()s are broken */
 }
 
 int main (int argc, char *argv[]) {