diff --git a/lustre/tests/rundbench b/lustre/tests/rundbench
index ce51eaff7a8dd4bf7d09241bd83982f30cf5d3e7..fb21863d97ee2d6281ef6309b840eea1894d3aee 100755
--- a/lustre/tests/rundbench
+++ b/lustre/tests/rundbench
@@ -1,5 +1,8 @@
 #!/bin/sh
 
+LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)}
+. $LUSTRE/tests/test-framework.sh
+
 usage() {
     echo "-C use chroot instead of cd"
     echo "-D DIR - use 'DIR' as work directory"
@@ -7,6 +10,7 @@ usage() {
     exit;
 }
 
+PATH=${DBENCH_LIB}:${PATH}
 MOUNT=${MOUNT:-/mnt/lustre}
 DIR=${DIR:-$MOUNT/`hostname`}
 
@@ -23,7 +27,7 @@ mkdir -p $DIR
 TGT=$DIR/client.txt
 CLIENT_PREFIX="${DBENCH_LIB} /usr/share/dbench /usr/local/share /usr/lib/dbench"
 CLIENT_FILE="client.txt client_plain.txt dbench_client"
-which dbench > /dev/null 2>&1 || { echo "dbench not installed, skip this test" && return 0; }
+which dbench > /dev/null 2>&1 || { skip "$0: dbench not installed" && exit 0; }
 CLIENT=""
 
 for prefix in $CLIENT_PREFIX; do
@@ -40,15 +44,20 @@ if [ -n "$SRC" -a -s "$SRC" ]; then
 	CLIENT=${SRC}
 fi
 
-[ ! -s "$TGT" -a -n "$CLIENT" -a -s "$CLIENT" ] && echo "copying $CLIENT to $TGT" && cp $CLIENT $TGT
-[ ! -s "$TGT" ] && echo "$0: $TGT doesn't exist (SRC=$CLIENT)" && exit 1
+[ ! -s "$CLIENT" ] && \
+    skip "$0: no client file found for dbench DBENCH_LIB=$DBENCH_LIB SRC=$SRC" && \
+        exit 0 
+
+[ ! -s "$TGT" ] && echo "copying $CLIENT to $TGT" && cp $CLIENT $TGT
+[ ! -s "$TGT" ] && \
+    echo "$0: $TGT file doesn't exist after cp $CLIENT $TGT" && exit 1
 
 if [ "x$CHROOT" == "xyes" ]; then
 	echo "copying necessary libs to $DIR"
 	cp `which dbench` $DIR
 	LIBS71=$(ldd $DIR/dbench|sed -e 's/\t*//' -e 's/.*=> //' -e 's/ .*//' -e 's/^\///')
 	(cd / && tar chf - $LIBS71) | (cd $DIR && tar xvf -)
-	[ $? = 0 ] && ( echo "can't copy libs $LIBS71 to $DIR" && exit 1 )
+	[ $? != 0 ] && echo "can't copy libs $LIBS71 to $DIR" && exit 1
 	RUN="chroot $DIR"
 	PREFIX="in"
 	PATH=.:/:$PATH
diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh
index 626eb08ea1669abe24861a5a86ec28b08e7b41a3..f8f234d8d907658a1f75b7b225523ad0f7f9741f 100644
--- a/lustre/tests/test-framework.sh
+++ b/lustre/tests/test-framework.sh
@@ -1502,7 +1502,8 @@ error_ignore() {
 
 skip () {
 	log " SKIP: ${TESTSUITE} ${TESTNAME} $@"
-	[ "$TESTSUITELOG" ] && echo "${TESTSUITE}: SKIP: $TESTNAME $@" >> $TESTSUITELOG
+	[ "$TESTSUITELOG" ] && \
+		echo "${TESTSUITE}: SKIP: $TESTNAME $@" >> $TESTSUITELOG || true
 }
 
 build_test_filter() {
@@ -1599,6 +1600,7 @@ log() {
     MSG=${MSG//\|/\\\|}
     MSG=${MSG//\>/\\\>}
     MSG=${MSG//\</\\\<}
+    MSG=${MSG//\//\\\/}
     local NODES=$(nodes_list)
     for NODE in $NODES; do
         do_node $NODE $LCTL mark "$MSG" 2> /dev/null || true