--- listener.c.orig	Fri Jun 29 00:59:06 2001
+++ listener.c	Mon Sep 24 18:38:10 2001
@@ -478,7 +478,12 @@
 		    fstat(listenfd, &sockinfo) == 0 &&
 		    (S_ISFIFO(sockinfo.st_mode)
 # ifdef S_ISSOCK
-		     || !S_ISSOCK(sockinfo.st_mode)
+             /* ASV: 24.09.01 
+                in original listener.c was !S_ISSOCK()
+                then for UNIX-socket removable = false
+                and in the next test condition removable
+                allways dont unlink UNIX-socket */
+		     || S_ISSOCK(sockinfo.st_mode)
 # endif /* S_ISSOCK */
 		     ))
 			removable = true;
@@ -493,8 +498,13 @@
 		{
 			if (removable &&
 			    stat(sockpath, &fileinfo) == 0 &&
-			    fileinfo.st_dev == sockinfo.st_dev &&
-			    fileinfo.st_ino == sockinfo.st_ino &&
+                /* ASV: 24.09.01 
+                   I dont know reasons to do this check,
+                   but my Linux 2.2.16-22 (RH 7.0) gives
+                   different values for device and
+                   UNIX socket was never unlinked */
+			    /* fileinfo.st_dev == sockinfo.st_dev && */
+			    /* fileinfo.st_ino == sockinfo.st_ino && */
 			    (S_ISFIFO(fileinfo.st_mode)
 # ifdef S_ISSOCK
 			     || S_ISSOCK(fileinfo.st_mode)
