Patches from Kevin P. Fleming <kpfleming@backtobasicsmgmt.com>.

--- mrouted-3.9-beta3.orig/main.c~	2004-03-10 19:00:38.000000000 -0700
+++ mrouted-3.9-beta3.orig/main.c	2004-03-10 19:02:33.000000000 -0700
@@ -1001,10 +1001,8 @@
 		    thyme->tm_min, thyme->tm_sec, now.tv_usec / 1000, msg);
 	if (syserr == 0)
 	    fprintf(stderr, "\n");
-	else if (syserr < sys_nerr)
-	    fprintf(stderr, ": %s\n", sys_errlist[syserr]);
 	else
-	    fprintf(stderr, ": errno %d\n", syserr);
+	    fprintf(stderr, ": %s\n", strerror(syserr));
     }
 
     /*
--- mrouted-3.9-beta3.orig/mrinfo.c~	1998-02-28 20:05:20.000000000 -0700
+++ mrouted-3.9-beta3.orig/mrinfo.c	2004-03-10 19:01:49.000000000 -0700
@@ -159,10 +159,8 @@
 		vfprintf(stderr, fmt, ap);
 		if (syserr == 0)
 			fprintf(stderr, "\n");
-		else if (syserr < sys_nerr)
-			fprintf(stderr, ": %s\n", sys_errlist[syserr]);
 		else
-			fprintf(stderr, ": errno %d\n", syserr);
+			fprintf(stderr, ": %s\n", strerror(syserr));
 	}
 
 	if (severity <= LOG_ERR)
--- mrouted-3.9-beta3.orig/mapper.c~	1998-01-05 18:57:47.000000000 -0700
+++ mrouted-3.9-beta3.orig/mapper.c	2004-03-10 19:02:04.000000000 -0700
@@ -197,10 +197,8 @@
 	    vfprintf(stderr, fmt, ap);
 	    if (syserr == 0)
 		fprintf(stderr, "\n");
-	    else if (syserr < sys_nerr)
-		fprintf(stderr, ": %s\n", sys_errlist[syserr]);
 	    else
-		fprintf(stderr, ": errno %d\n", syserr);
+	        fprintf(stderr, ": %s\n", strerror(syserr));
     }
 
     if (severity <= LOG_ERR)
