diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh
index 654745544c6bb99246cda2201e5f5e23fb8c76a4..879adf45641540410e0bad9007ba6713abff933e 100644
--- a/lustre/tests/test-framework.sh
+++ b/lustre/tests/test-framework.sh
@@ -1421,8 +1421,7 @@ run_one() {
     cd $SAVE_PWD
     reset_fail_loc
     check_grant ${testnum} || error "check_grant $testnum failed with $?"
-    [ -f $CATASTROPHE ] && [ `cat $CATASTROPHE` -ne 0 ] && \
-        error "LBUG/LASSERT detected"
+    check_catastrophe || error "LBUG/LASSERT detected"
     ps auxww | grep -v grep | grep -q multiop && error "multiop still running"
     pass "($((`date +%s` - $BEFORE))s)"
     unset TESTNAME
@@ -1547,6 +1546,12 @@ nodes_list () {
     echo $myNODES_sort
 }
 
+remote_nodes_list () {
+    local rnodes=$(nodes_list)
+    rnodes=$(echo " $rnodes " | sed -re "s/\s+$HOSTNAME\s+/ /g")
+    echo $rnodes 
+}
+
 init_clients_lists () {
     # Sanity check: exclude the local client from RCLIENTS
     local rclients=$(echo " $RCLIENTS " | sed -re "s/\s+$HOSTNAME\s+/ /g")
@@ -1707,3 +1712,12 @@ restore_lustre_params() {
         done
 }
 
+check_catastrophe () {
+    local rnodes=$(comma_list $(remote_nodes_list))
+
+    [ -f $CATASTROPHE ] && [ `cat $CATASTROPHE` -ne 0 ] && return 1
+    if [ $rnodes ]; then
+        do_nodes $rnodes "[ -f $CATASTROPHE ] && { [ `cat $CATASTROPHE` -eq 0 ] || false; } || true"
+    fi 
+}
+