diff --git a/tests/compat.sh b/tests/compat.sh
index db24d7c..1107b71 100755
--- a/tests/compat.sh
+++ b/tests/compat.sh
@@ -3,9 +3,12 @@
 # Test interop with OpenSSL for each common ciphersuite and version.
 # Also test selfop for ciphersuites not shared with OpenSSL.
 
+set -u
+
 let "tests = 0"
 let "failed = 0"
 let "skipped = 0"
+let "srvmem = 0"
 
 # default values, can be overriden by the environment
 : ${P_SRV:=../programs/ssl/ssl_server2}
@@ -17,6 +20,7 @@
 TYPES="ECDSA RSA PSK"
 FILTER=""
 VERBOSE=""
+MEMCHECK=0
 
 print_usage() {
     echo "Usage: $0"
@@ -25,6 +29,7 @@
     echo -e "  -m|--modes\tWhich modes to perform (Default: \"ssl3 tls1 tls1_1 tls1_2\")"
     echo -e "  -t|--types\tWhich key exchange type to perform (Default: \"ECDSA RSA PSK\")"
     echo -e "  -V|--verify\tWhich verification modes to perform (Default: \"NO YES\")"
+    echo -e "  -M, --memcheck\tCheck memory leaks and errors."
     echo -e "  -v|--verbose\t\tSet verbose output."
 }
 
@@ -46,6 +51,9 @@
             -v|--verbose)
                 VERBOSE=1
                 ;;
+            -M|--memcheck)
+                MEMCHECK=1
+                ;;
             -h|--help)
                 print_usage
                 exit 0
@@ -455,6 +463,22 @@
     esac
 }
 
+# is_polar <cmd_line>
+is_polar() {
+    echo "$1" | grep 'ssl_server2\|ssl_client2' > /dev/null
+}
+
+# has_mem_err <log_file_name>
+has_mem_err() {
+    if ( grep -F 'All heap blocks were freed -- no leaks are possible' "$1" &&
+         grep -F 'ERROR SUMMARY: 0 errors from 0 contexts' "$1" ) > /dev/null
+    then
+        return 1 # false: does not have errors
+    else
+        return 0 # true: has errors
+    fi
+}
+
 # start_server <name>
 # also saves name and command
 start_server() {
@@ -464,6 +488,9 @@
             ;;
         [Pp]olar*)
             SERVER_CMD="$P_SRV $P_SERVER_ARGS"
+            if [ "$MEMCHECK" -gt 0 ]; then
+                SERVER_CMD="valgrind --leak-check=full $SERVER_CMD"
+            fi
             ;;
         *)
             echo "error: invalid server name: $1" >&2
@@ -494,6 +521,15 @@
     esac
 
     wait $PROCESS_ID 2>/dev/null
+
+    if [ "$MEMCHECK" -gt 0 ]; then
+        if is_polar "$SERVER_CMD" && has_mem_err srv_out; then
+            echo "  ! Server had memory errors"
+            let "srvmem++"
+            return
+        fi
+    fi
+
     rm -f srv_out
 }
 
@@ -536,8 +572,11 @@
 
         [Pp]olar*)
             CLIENT_CMD="$P_CLI $P_CLIENT_ARGS force_ciphersuite=$2"
+            if [ "$MEMCHECK" -gt 0 ]; then
+                CLIENT_CMD="valgrind --leak-check=full $CLIENT_CMD"
+            fi
             log "$CLIENT_CMD"
-            $CLIENT_CMD > cli_out
+            $CLIENT_CMD > cli_out 2>&1
             EXIT=$?
 
             case $EXIT in
@@ -545,6 +584,13 @@
                 "2")    RESULT=1    ;;
                 *)      RESULT=2    ;;
             esac
+
+            if [ "$MEMCHECK" -gt 0 ]; then
+                if is_polar "$CLIENT_CMD" && has_mem_err cli_out; then
+                    RESULT=2
+                fi
+            fi
+
             ;;
 
         *)
@@ -566,8 +612,9 @@
             echo FAIL
             echo "  ! $SERVER_CMD"
             echo "  ! $CLIENT_CMD"
-            echo -n "  ! end of client output: "
-            tail -n5 cli_out
+            cp srv_out c-srv-${tests}.log
+            cp cli_out c-cli-${tests}.log
+            echo "  ! outputs saved to c-srv-${tests}.log, c-cli-${tests}.log"
             let "failed++"
             ;;
     esac
@@ -637,7 +684,7 @@
 
 echo "------------------------------------------------------------------------"
 
-if (( failed != 0 ));
+if (( failed != 0 && srvmem != 0 ));
 then
     echo -n "FAILED"
 else
@@ -645,6 +692,7 @@
 fi
 
 let "passed = tests - failed"
-echo " ($passed / $tests tests ($skipped skipped))"
+echo " ($passed / $tests tests ($skipped skipped, $srvmem server memory errors)"
 
+let "failed += srvmem"
 exit $failed
diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh
index 72b7401..6950ec3 100755
--- a/tests/ssl-opt.sh
+++ b/tests/ssl-opt.sh
@@ -63,11 +63,11 @@
 # fail <message>
 fail() {
     echo "FAIL"
-    echo "    $1"
+    echo "  ! $1"
 
-    cp srv_out srv-${TESTS}.log
-    cp cli_out cli-${TESTS}.log
-    echo "    outputs saved to srv-${TESTS}.log and cli-${TESTS}.log"
+    cp srv_out o-srv-${TESTS}.log
+    cp cli_out o-cli-${TESTS}.log
+    echo "  ! outputs saved to o-srv-${TESTS}.log and o-cli-${TESTS}.log"
 
     FAILS=`echo $FAILS + 1 | bc`
 }
