Do not try to remove abstract UNIX socket entries after use
diff --git a/CHANGES b/CHANGES
index dd5d667..3014e2a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -59,6 +59,8 @@
 	The mechanism for deferring logs from signal handlers had an issue that
 	caused lots of unwanted recvfrom() calls.
 
+	Do not try to remove abstract UNIX socket entries after use.
+
 Features:
 	VSOCK, VSOCK-L support options pf, socktype, prototype (currently
 	useless)
diff --git a/test.sh b/test.sh
index f778bd5..9402d7d 100755
--- a/test.sh
+++ b/test.sh
@@ -9633,22 +9633,29 @@
 rc2=$?
 kill "$pid1" 2>/dev/null; wait
 if [ $rc2 -ne 0 ]; then
-   $PRINTF "$FAILED: $TRACE $SOCAT:\n"
-   echo "$CMD1 &"
-   cat "${te}1"
-   echo "$CMD2"
-   cat "${te}2"
+    $PRINTF "$FAILED: $TRACE $SOCAT:\n"
+    echo "$CMD1 &"
+    cat "${te}1" >&2
+    echo "$CMD2"
+    cat "${te}2" >&2
     numFAIL=$((numFAIL+1))
     listFAIL="$listFAIL $N"
 elif ! echo "$da" |diff - "$tf" >"$tdiff"; then
-   $PRINTF "$FAILED\n"
-   cat "$tdiff"
+    $PRINTF "$FAILED\n"
+    echo "$CMD1 &"
+    cat "${te}1" >&2
+    echo "$CMD2"
+    cat "${te}2" >&2
+    cat "$tdiff" >&2
     numFAIL=$((numFAIL+1))
     listFAIL="$listFAIL $N"
 else
-   $PRINTF "$OK\n"
-   if [ -n "$debug" ]; then cat $te; fi
-   numOK=$((numOK+1))
+    $PRINTF "$OK\n"
+    if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi
+    if [ "$DEBUG" ];   then cat "${te}1" >&2; fi
+    if [ "$VERBOSE" ]; then echo "$CMD2"; fi
+    if [ "$DEBUG" ];   then cat "${te}2" >&2; fi
+    numOK=$((numOK+1))
 fi
 fi ;; # NUMCOND, feats
 esac
@@ -9684,22 +9691,29 @@
 i=0; while [ ! -s "$tf" -a "$i" -lt 10 ]; do  usleep 100000; i=$((i+1));  done
 kill "$pid1" 2>/dev/null; wait
 if [ "$rc2" -ne 0 ]; then
-   $PRINTF "$FAILED: $TRACE $SOCAT:\n"
-   echo "$CMD1 &"
-   echo "$CMD2"
-   cat "${te}1"
-   cat "${te}2"
+    $PRINTF "$FAILED: $TRACE $SOCAT:\n"
+    echo "$CMD1 &"
+    cat "${te}1" >&2
+    echo "$CMD2"
+    cat "${te}2" >&2
     numFAIL=$((numFAIL+1))
     listFAIL="$listFAIL $N"
 elif ! echo "$da" |diff - "$tf" >"$tdiff"; then
-   $PRINTF "$FAILED\n"
-   cat "$tdiff"
+    $PRINTF "$FAILED\n"
+    echo "$CMD1 &"
+    cat "${te}1" >&2
+    echo "$CMD2"
+    cat "${te}2" >&2
+    cat "$tdiff"
     numFAIL=$((numFAIL+1))
     listFAIL="$listFAIL $N"
 else
-   $PRINTF "$OK\n"
-   if [ -n "$debug" ]; then cat $te; fi
-   numOK=$((numOK+1))
+    $PRINTF "$OK\n"
+    if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi
+    if [ "$DEBUG" ];   then cat "${te}1" >&2; fi
+    if [ "$VERBOSE" ]; then echo "$CMD2"; fi
+    if [ "$DEBUG" ];   then cat "${te}2" >&2; fi
+    numOK=$((numOK+1))
 fi
 fi ;; # NUMCOND, feats
 esac
@@ -9732,13 +9746,15 @@
 rc1=$?
 if [ $rc1 -ne 0 ]; then
     $PRINTF "$FAILED\n"
-    echo "$CMD1" >&2
+    echo "$CMD1"
     echo "rc=$rc1" >&2
     cat "${te}1" >&2
     numFAIL=$((numFAIL+1))
     listFAIL="$listFAIL $N"
 elif echo "$da" |diff -q - $tf; then
     $PRINTF "$OK\n"
+    if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi
+    if [ "$DEBUG" ];   then cat "${te}1" >&2; fi
     numOK=$((numOK+1))
 else
     $PRINTF "$FAILED\n"
diff --git a/xio-unix.c b/xio-unix.c
index 898a83b..b3a0583 100644
--- a/xio-unix.c
+++ b/xio-unix.c
@@ -127,7 +127,7 @@
    struct opt *opts0 = NULL;
    pid_t pid = Getpid();
    bool opt_unlink_early = false;
-   bool opt_unlink_close = true;
+   bool opt_unlink_close = (abstract != 1);
    int result;
 
    if (argc != 2) {
@@ -217,7 +217,7 @@
    struct sockaddr_un them, us;
    socklen_t themlen, uslen = sizeof(us);
    bool needbind = false;
-   bool opt_unlink_close = true;
+   bool opt_unlink_close = (abstract != 1);
    bool dofork = false;
    struct opt *opts0;
    char infobuff[256];
@@ -365,7 +365,7 @@
    union sockaddr_union us;
    socklen_t uslen = sizeof(us);
    bool needbind = false;
-   bool opt_unlink_close = true;
+   bool opt_unlink_close = (abstract != 1);
 
    if (argc != 2) {
       Error2("%s: wrong number of parameters (%d instead of 1)",
@@ -429,7 +429,7 @@
    socklen_t uslen;
    bool needbind = true;
    bool opt_unlink_early = false;
-   bool opt_unlink_close = true;
+   bool opt_unlink_close = (abstract != 1);
 
    if (argc != 2) {
       Error2("%s: wrong number of parameters (%d instead of 1)",
@@ -514,7 +514,7 @@
    union sockaddr_union us;
    socklen_t uslen;
    bool opt_unlink_early = false;
-   bool opt_unlink_close = true;
+   bool opt_unlink_close = (abstract != 1);
    int result;
 
    if (argc != 2) {