diff --git a/tests/check_ecmwf_attr.sh.in b/tests/check_ecmwf_attr.sh.in
index 4bda7eb4dd72ba94cfb698cf3cd6472aa30449d7..f3c64e1bdd38b231c66beacbfca48ada9ce29dfa 100755
--- a/tests/check_ecmwf_attr.sh.in
+++ b/tests/check_ecmwf_attr.sh.in
@@ -34,6 +34,8 @@ terminate () {
     # will make it receive a SIGPIPE eventually, which initiates
     # termination.
     exec 3<&-
+    echo "waiting pm to terminate"
+    wait ${PM_PID}
     exit ${2:-99}
 }
 
diff --git a/tests/check_ecmwf_events.sh.in b/tests/check_ecmwf_events.sh.in
index be6e74f6cd01344f6c229dda251d15eeb80a069e..13c7feb7a4a1715b6d62c674d58c7a6bafe8e25a 100755
--- a/tests/check_ecmwf_events.sh.in
+++ b/tests/check_ecmwf_events.sh.in
@@ -34,6 +34,8 @@ terminate () {
     # will make it receive a SIGPIPE eventually, which initiates
     # termination.
     exec 3<&-
+    echo "waiting pm to terminate"
+    wait ${PM_PID}
     exit ${2:-99}
 }
 
diff --git a/tests/check_ecmwf_handle.sh.in b/tests/check_ecmwf_handle.sh.in
index 707ac2eabd6362e22733d0f8643c6283960adeed..85dca88c585acdc39206697edf161455ca4b54a6 100755
--- a/tests/check_ecmwf_handle.sh.in
+++ b/tests/check_ecmwf_handle.sh.in
@@ -34,6 +34,8 @@ terminate () {
     # will make it receive a SIGPIPE eventually, which initiates
     # termination.
     exec 3<&-
+    echo "waiting pm to terminate"
+    wait ${PM_PID}
     exit ${2:-99}
 }
 
diff --git a/tests/check_pm_declare.sh.in b/tests/check_pm_declare.sh.in
index 4488871cc3ce339094b5bac920686c2d4b992a66..3f95b4ef5df5c3b6f63f8e243cda3a1410ec82b6 100644
--- a/tests/check_pm_declare.sh.in
+++ b/tests/check_pm_declare.sh.in
@@ -60,6 +60,8 @@ terminate () {
     # will make it receive a SIGPIPE eventually, which initiates
     # termination.
     exec 3<&-
+    echo "waiting pm to terminate"
+    wait ${PM_PID}
     exit ${2:-99}	       
 }
 
diff --git a/tests/check_pm_declare_group.sh.in b/tests/check_pm_declare_group.sh.in
index 8adee5d42dd6eb309c182a5c2fca0525bb370eb6..b7a26fd461dff8d95dfe0818eb5a5faaa40db625 100644
--- a/tests/check_pm_declare_group.sh.in
+++ b/tests/check_pm_declare_group.sh.in
@@ -58,6 +58,8 @@ terminate () {
     # will make it receive a SIGPIPE eventually, which initiates
     # termination.
     exec 3<&-
+    echo "waiting pm to terminate"
+    wait ${PM_PID}
     exit ${2:-99}	       
 }
 
diff --git a/tests/check_pm_interlock.sh.in b/tests/check_pm_interlock.sh.in
index a91f052b278dc6454b685a230a9d3a8ded6c7734..ef57e83fa886e74a91e25505cdca45b0ac538daa 100644
--- a/tests/check_pm_interlock.sh.in
+++ b/tests/check_pm_interlock.sh.in
@@ -64,6 +64,8 @@ terminate () {
     # will make it receive a SIGPIPE eventually, which initiates
     # termination.
     exec 3<&-
+    echo "waiting pm to terminate"
+    wait ${PM_PID}
     exit ${2:-99}	       
 }
 
diff --git a/tests/check_subscribe.sh.in b/tests/check_subscribe.sh.in
index 811f1a55b5e4113fb6a5bf902eab8e39d5969a77..5d733ded1b3f95f951234f790e669f6c3d3a02e8 100644
--- a/tests/check_subscribe.sh.in
+++ b/tests/check_subscribe.sh.in
@@ -65,6 +65,8 @@ terminate () {
     # will make it receive a SIGPIPE eventually, which initiates
     # termination.
     exec 3<&-
+    echo "waiting pm to terminate"
+    wait ${PM_PID}
     exit ${2:-99}	       
 }