diff --git a/doc/man/man8/slapd.8 b/doc/man/man8/slapd.8
index f0a4b8dbb596a06337b7f45752a15093f12147c2..c8225e0282aced75226e3147fbbd49adf3cfc591 100644
--- a/doc/man/man8/slapd.8
+++ b/doc/man/man8/slapd.8
@@ -100,11 +100,14 @@ to basename of argv[0], i.e.: "slapd".
 .BI \-l " syslog\-local\-user"
 Selects the local user of the
 .BR syslog (8)
-facility. Values can be 
+facility. Value can be 
 .BR LOCAL0 , 
-.BR LOCAL1 , 
-and so on, up to 
-.BR LOCAL7 . 
+through
+.BR LOCAL7 ,
+as well as
+.B USER
+and
+.BR DAEMON .
 The default is
 .BR LOCAL4 .
 However, this option is only permitted on systems that support
diff --git a/servers/slapd/main.c b/servers/slapd/main.c
index 4c31804531739b55d4b2fc40ad4e35fa2bfde4cc..66e47e63a2e72779ee79804574dedf8eca666a88 100644
--- a/servers/slapd/main.c
+++ b/servers/slapd/main.c
@@ -100,7 +100,6 @@ const char Versionstr[] =
 #endif
 
 #ifdef LOG_LOCAL4
-
 #define DEFAULT_SYSLOG_USER  LOG_LOCAL4
 
 typedef struct _str2intDispatch {
@@ -109,7 +108,6 @@ typedef struct _str2intDispatch {
 	int	 intVal;
 } STRDISP, *STRDISP_P;
 
-
 /* table to compute syslog-options to integer */
 static STRDISP	syslog_types[] = {
 	{ "LOCAL0", sizeof("LOCAL0"), LOG_LOCAL0 },
@@ -120,11 +118,16 @@ static STRDISP	syslog_types[] = {
 	{ "LOCAL5", sizeof("LOCAL5"), LOG_LOCAL5 },
 	{ "LOCAL6", sizeof("LOCAL6"), LOG_LOCAL6 },
 	{ "LOCAL7", sizeof("LOCAL7"), LOG_LOCAL7 },
+#ifdef LOG_USER
+	{ "USER", sizeof("USER"), LOG_USER },
+#endif
+#ifdef LOG_DAEMON
+	{ "DAEMON", sizeof("DAEMON"), LOG_DAEMON },
+#endif
 	{ NULL, 0, 0 }
 };
 
-static int   cnvt_str2int( char *, STRDISP_P, int );
-
+static int cnvt_str2int( char *, STRDISP_P, int );
 #endif	/* LOG_LOCAL4 */
 
 #define CHECK_NONE	0x00
@@ -450,7 +453,7 @@ int main( int argc, char **argv )
 #ifdef LOG_LOCAL4
 		case 'l':	/* set syslog local user */
 			syslogUser = cnvt_str2int( optarg,
-			syslog_types, DEFAULT_SYSLOG_USER );
+				syslog_types, DEFAULT_SYSLOG_USER );
 			break;
 #endif