diff --git a/tests/t_server_null_client.sh b/tests/t_server_null_client.sh
index e7dd3324..c1a25dfc 100755
--- a/tests/t_server_null_client.sh
+++ b/tests/t_server_null_client.sh
@@ -87,7 +87,10 @@ while [ $count -lt $server_max_wait ]; do
     # the active server count as the processes won't be running.
     for i in `set|grep 'SERVER_NAME_'|cut -d "=" -f 2|tr -d "[\']"`; do
         server_pid=$(cat $i.pid 2> /dev/null)
-        if ps -p $server_pid > /dev/null 2>&1; then
+        if [ -z "$server_pid" ] ; then
+            continue
+        fi
+        if $RUN_SUDO kill -0 $server_pid > /dev/null 2>&1; then
             servers_up=$(( $servers_up + 1 ))
         fi
     done
diff --git a/tests/t_server_null_server.sh b/tests/t_server_null_server.sh
index e5906eec..32f0362d 100755
--- a/tests/t_server_null_server.sh
+++ b/tests/t_server_null_server.sh
@@ -82,6 +82,11 @@ for PID_FILE in $server_pid_files
 do
     SERVER_PID=$(cat "${PID_FILE}")
 
+    if [ -z "$SERVER_PID" ] ; then
+        echo "WARNING: could not kill server ${PID_FILE}!"
+	continue
+    fi
+
     if [ -z "${RUN_SUDO}" ]; then
         $KILL_EXEC "${SERVER_PID}"
     else
