diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index 732e883f38f5a04055726d48065b2faf66f85e27..0365ed861370f3590c9c08c0830d86f526e3bcff 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -152,7 +152,7 @@ static int lprintf(char *fmt, ...)
     vsnprintf(sbuf,sizeof(sbuf),fmt,argptr);
 	sbuf[sizeof(sbuf)-1]=0;
     va_end(argptr);
-    result=startup->lputs(startup->cbdata,sbuf);
+    result=startup->lputs(startup->cbdata,LOG_INFO,sbuf);
 
 	return(result);
 }
diff --git a/src/sbbs3/ftpsrvr.h b/src/sbbs3/ftpsrvr.h
index 1d917ff9b6bd2e2c240e12b6405338c56035b499..a765587fef1ebe14cb1fc499ac5ac3f1ec6a99f2 100644
--- a/src/sbbs3/ftpsrvr.h
+++ b/src/sbbs3/ftpsrvr.h
@@ -56,7 +56,7 @@ typedef struct {
 	void*	cbdata;				/* Private data passed to callbacks */ 
 
 	/* Callbacks (NULL if unused) */
-	int 	(*lputs)(void*, char*);
+	int 	(*lputs)(void*, int, char*);
 	void	(*status)(void*, char*);
     void	(*started)(void*);
     void	(*terminated)(void*, int code);
diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index 2b3ed7666ce0d0fd5e4794005b4ad76eb44ce81a..63d5b9d185a9842cdc51f90815ab167798bc46f1 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -125,7 +125,7 @@ static int lprintf(char *fmt, ...)
     vsnprintf(sbuf,sizeof(sbuf),fmt,argptr);
 	sbuf[sizeof(sbuf)-1]=0;
     va_end(argptr);
-    return(startup->lputs(startup->cbdata,sbuf));
+    return(startup->lputs(startup->cbdata,LOG_INFO,sbuf));
 }
 
 #ifdef _WINSOCKAPI_
diff --git a/src/sbbs3/mailsrvr.h b/src/sbbs3/mailsrvr.h
index 551870e4e4c877a4f111a8a759f6f3caa57107a0..079fb4aa1b58619a602cf746a96f40052a4881b3 100644
--- a/src/sbbs3/mailsrvr.h
+++ b/src/sbbs3/mailsrvr.h
@@ -61,7 +61,7 @@ typedef struct {
 	void*	cbdata;				/* Private data passed to callbacks */ 
 
 	/* Callbacks (NULL if unused) */
-	int 	(*lputs)(void*, char*);
+	int 	(*lputs)(void*, int, char*);
 	void	(*status)(void*, char*);
     void	(*started)(void*);
     void	(*terminated)(void*, int code);
diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 1e24a0670e84dc0014a0cb583bbef4baf3b1e9dd..9fbe270b389028bdbb0b92b09e90d05712b70a4d 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -147,7 +147,7 @@ int lputs(char* str)
 	}
 #endif
 
-    return(startup->lputs(startup->cbdata,str));
+    return(startup->lputs(startup->cbdata,LOG_INFO,str));
 }
 
 int lprintf(char *fmt, ...)
@@ -162,7 +162,7 @@ int lprintf(char *fmt, ...)
     vsnprintf(sbuf,sizeof(sbuf),fmt,argptr);
 	sbuf[sizeof(sbuf)-1]=0;
     va_end(argptr);
-    return(startup->lputs(startup->cbdata,sbuf));
+    return(startup->lputs(startup->cbdata,LOG_INFO,sbuf));
 }
 
 int eprintf(char *fmt, ...)
@@ -170,7 +170,7 @@ int eprintf(char *fmt, ...)
 	va_list argptr;
 	char sbuf[1024];
 
-    if(startup==NULL || startup->event_log==NULL)
+    if(startup==NULL || startup->event_lputs==NULL)
         return(0);
 
     va_start(argptr,fmt);
@@ -178,7 +178,7 @@ int eprintf(char *fmt, ...)
 	sbuf[sizeof(sbuf)-1]=0;
     va_end(argptr);
 	strip_ctrl(sbuf);
-    return(startup->event_log(sbuf));
+    return(startup->event_lputs(LOG_INFO,sbuf));
 }
 
 SOCKET open_socket(int type)
@@ -452,8 +452,8 @@ js_log(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 		if((str=JS_ValueToString(cx, argv[i]))==NULL)
 		    return(JS_FALSE);
 		if(sbbs->online==ON_LOCAL) {
-			if(startup!=NULL && startup->event_log!=NULL)
-				startup->event_log(JS_GetStringBytes(str));
+			if(startup!=NULL && startup->event_lputs!=NULL)
+				startup->event_lputs(LOG_INFO,JS_GetStringBytes(str));
 		} else
 			lputs(JS_GetStringBytes(str));
 		}
diff --git a/src/sbbs3/sbbscon.c b/src/sbbs3/sbbscon.c
index a6d584064739ef18d0651065192f97346ce0fc3e..c45647f5dde61289a44f44d44b97cf65638b20d7 100644
--- a/src/sbbs3/sbbscon.c
+++ b/src/sbbs3/sbbscon.c
@@ -195,7 +195,7 @@ static const char* services_usage  = "Services settings:\n"
 							"\n"
 							;
 
-static int lputs(char *str)
+static int log_puts(int level, char *str)
 {
 	static pthread_mutex_t mutex;
 	static BOOL mutex_initialized;
@@ -205,9 +205,9 @@ static int lputs(char *str)
 	if (is_daemon)  {
 		if(str!=NULL) {
 			if (std_facilities)
-				syslog(LOG_INFO|LOG_AUTH,"%s",str);
+				syslog(level|LOG_AUTH,"%s",str);
 			else
-				syslog(LOG_INFO,"%s",str);
+				syslog(level,"%s",str);
 		}
 		return(0);
 	}
@@ -265,8 +265,8 @@ static BOOL do_seteuid(BOOL to_new)
 	pthread_mutex_unlock(&mutex);
 
 	if(!result) {
-		lputs("!seteuid FAILED");
-		lputs(strerror(errno));
+		log_puts(LOG_ERR,"!seteuid FAILED");
+		log_puts(LOG_ERR,strerror(errno));
 	}
 	return result;
 }
@@ -285,15 +285,15 @@ BOOL do_setuid(BOOL force)
 	setreuid(-1,old_uid);
 	if(setregid(new_gid,new_gid))
 	{
-		lputs("!setgid FAILED");
-		lputs(strerror(errno));
+		log_puts(LOG_ERR,"!setgid FAILED");
+		log_puts(LOG_ERR,strerror(errno));
 		result=FALSE;
 	}
 
 	if(setreuid(new_uid,new_uid))
 	{
-		lputs("!setuid FAILED");
-		lputs(strerror(errno));
+		log_puts(LOG_ERR,"!setuid FAILED");
+		log_puts(LOG_ERR,strerror(errno));
 		result=FALSE;
 	}
 	if(force && (!result))
@@ -357,7 +357,7 @@ static void thread_up(void* p, BOOL up, BOOL setuid)
     else if(thread_count>0)
     	thread_count--;
 	pthread_mutex_unlock(&mutex);
-	lputs(NULL); /* update displayed stats */
+	log_puts(LOG_INFO,NULL); /* update displayed stats */
 }
 
 static void socket_open(void* p, BOOL open)
@@ -376,7 +376,7 @@ static void socket_open(void* p, BOOL open)
     else if(socket_count>0)
     	socket_count--;
 	pthread_mutex_unlock(&mutex);
-	lputs(NULL); /* update displayed stats */
+	log_puts(LOG_INFO,NULL); /* update displayed stats */
 }
 
 static void client_on(void* p, BOOL on, int sock, client_t* client, BOOL update)
@@ -396,13 +396,13 @@ static void client_on(void* p, BOOL on, int sock, client_t* client, BOOL update)
 	} else if(!on && client_count>0)
 		client_count--;
 	pthread_mutex_unlock(&mutex);
-	lputs(NULL); /* update displayed stats */
+	log_puts(LOG_INFO,NULL); /* update displayed stats */
 }
 
 /****************************************************************************/
 /* BBS local/log print routine												*/
 /****************************************************************************/
-static int bbs_lputs(void* p, char *str)
+static int bbs_lputs(void* p, int level, char *str)
 {
 	char		logline[512];
 	char		tstr[64];
@@ -414,9 +414,9 @@ static int bbs_lputs(void* p, char *str)
 		if(str==NULL)
 			return(0);
 		if (std_facilities)
-			syslog(LOG_INFO|LOG_AUTH,"%s",str);
+			syslog(level|LOG_AUTH,"%s",str);
 		else
-			syslog(LOG_INFO,"     %s",str);
+			syslog(level,"     %s",str);
 		return(strlen(str));
 	}
 #endif
@@ -431,7 +431,7 @@ static int bbs_lputs(void* p, char *str)
 
 	sprintf(logline,"%s     %.*s",tstr,(int)sizeof(logline)-32,str);
 	truncsp(logline);
-	lputs(logline);
+	log_puts(level,logline);
 	
     return(strlen(logline)+1);
 }
@@ -455,7 +455,7 @@ static void bbs_terminated(void* p, int code)
 /****************************************************************************/
 /* FTP local/log print routine												*/
 /****************************************************************************/
-static int ftp_lputs(void* p, char *str)
+static int ftp_lputs(void* p, int level, char *str)
 {
 	char		logline[512];
 	char		tstr[64];
@@ -468,12 +468,12 @@ static int ftp_lputs(void* p, char *str)
 			return(0);
 		if (std_facilities)
 #ifdef __solaris__
-			syslog(LOG_INFO|LOG_DAEMON,"%s",str);
+			syslog(level|LOG_DAEMON,"%s",str);
 #else
-			syslog(LOG_INFO|LOG_FTP,"%s",str);
+			syslog(level|LOG_FTP,"%s",str);
 #endif
 		else
-			syslog(LOG_INFO,"ftp  %s",str);
+			syslog(level,"ftp  %s",str);
 		return(strlen(str));
 	}
 #endif
@@ -488,7 +488,7 @@ static int ftp_lputs(void* p, char *str)
 
 	sprintf(logline,"%sftp  %.*s",tstr,(int)sizeof(logline)-32,str);
 	truncsp(logline);
-	lputs(logline);
+	log_puts(level,logline);
 	
     return(strlen(logline)+1);
 }
@@ -512,7 +512,7 @@ static void ftp_terminated(void* p, int code)
 /****************************************************************************/
 /* Mail Server local/log print routine										*/
 /****************************************************************************/
-static int mail_lputs(void* p, char *str)
+static int mail_lputs(void* p, int level, char *str)
 {
 	char		logline[512];
 	char		tstr[64];
@@ -524,9 +524,9 @@ static int mail_lputs(void* p, char *str)
 		if(str==NULL)
 			return(0);
 		if (std_facilities)
-			syslog(LOG_INFO|LOG_MAIL,"%s",str);
+			syslog(level|LOG_MAIL,"%s",str);
 		else
-			syslog(LOG_INFO,"mail %s",str);
+			syslog(level,"mail %s",str);
 		return(strlen(str));
 	}
 #endif
@@ -541,7 +541,7 @@ static int mail_lputs(void* p, char *str)
 
 	sprintf(logline,"%smail %.*s",tstr,(int)sizeof(logline)-32,str);
 	truncsp(logline);
-	lputs(logline);
+	log_puts(level,logline);
 	
     return(strlen(logline)+1);
 }
@@ -565,7 +565,7 @@ static void mail_terminated(void* p, int code)
 /****************************************************************************/
 /* Services local/log print routine											*/
 /****************************************************************************/
-static int services_lputs(void* p, char *str)
+static int services_lputs(void* p, int level, char *str)
 {
 	char		logline[512];
 	char		tstr[64];
@@ -577,9 +577,9 @@ static int services_lputs(void* p, char *str)
 		if(str==NULL)
 			return(0);
 		if (std_facilities)
-			syslog(LOG_INFO|LOG_DAEMON,"%s",str);
+			syslog(level|LOG_DAEMON,"%s",str);
 		else
-			syslog(LOG_INFO,"srvc %s",str);
+			syslog(level,"srvc %s",str);
 		return(strlen(str));
 	}
 #endif
@@ -594,7 +594,7 @@ static int services_lputs(void* p, char *str)
 
 	sprintf(logline,"%ssrvc %.*s",tstr,(int)sizeof(logline)-32,str);
 	truncsp(logline);
-	lputs(logline);
+	log_puts(level,logline);
 	
     return(strlen(logline)+1);
 }
@@ -618,7 +618,7 @@ static void services_terminated(void* p, int code)
 /****************************************************************************/
 /* Event thread local/log print routine										*/
 /****************************************************************************/
-static int event_lputs(char *str)
+static int event_lputs(int level, char *str)
 {
 	char		logline[512];
 	char		tstr[64];
@@ -630,9 +630,9 @@ static int event_lputs(char *str)
 		if(str==NULL)
 			return(0);
 		if (std_facilities)
-			syslog(LOG_INFO|LOG_CRON,"%s",str);
+			syslog(level|LOG_CRON,"%s",str);
 		else
-			syslog(LOG_INFO,"evnt %s",str);
+			syslog(level,"evnt %s",str);
 		return(strlen(str));
 	}
 #endif
@@ -647,7 +647,7 @@ static int event_lputs(char *str)
 
 	sprintf(logline,"%sevnt %.*s",tstr,(int)sizeof(logline)-32,str);
 	truncsp(logline);
-	lputs(logline);
+	log_puts(level,logline);
 	
     return(strlen(logline)+1);
 }
@@ -655,7 +655,7 @@ static int event_lputs(char *str)
 /****************************************************************************/
 /* web local/log print routine											*/
 /****************************************************************************/
-static int web_lputs(void* p, char *str)
+static int web_lputs(void* p, int level, char *str)
 {
 	char		logline[512];
 	char		tstr[64];
@@ -667,9 +667,9 @@ static int web_lputs(void* p, char *str)
 		if(str==NULL)
 			return(0);
 		if (std_facilities)
-			syslog(LOG_INFO|LOG_DAEMON,"%s",str);
+			syslog(level|LOG_DAEMON,"%s",str);
 		else
-			syslog(LOG_INFO,"web  %s",str);
+			syslog(level,"web  %s",str);
 		return(strlen(str));
 	}
 #endif
@@ -684,7 +684,7 @@ static int web_lputs(void* p, char *str)
 
 	sprintf(logline,"%sweb  %.*s",tstr,(int)sizeof(logline)-32,str);
 	truncsp(logline);
-	lputs(logline);
+	log_puts(level,logline);
 	
     return(strlen(logline)+1);
 }
@@ -722,15 +722,15 @@ static void terminate(void)
 	while(bbs_running || ftp_running || web_running || mail_running || services_running)  {
 		if(count && (count%10)==0) {
 			if(bbs_running)
-				bbs_lputs(NULL,"BBS System thread still running");
+				bbs_lputs(NULL,LOG_INFO,"BBS System thread still running");
 			if(ftp_running)
-				ftp_lputs(NULL,"FTP Server thread still running");
+				ftp_lputs(NULL,LOG_INFO,"FTP Server thread still running");
 			if(web_running)
-				web_lputs(NULL,"Web Server thread still running");
+				web_lputs(NULL,LOG_INFO,"Web Server thread still running");
 			if(mail_running)
-				mail_lputs(NULL,"Mail Server thread still running");
+				mail_lputs(NULL,LOG_INFO,"Mail Server thread still running");
 			if(services_running)
-				services_lputs(NULL,"Services thread still running");
+				services_lputs(NULL,LOG_INFO,"Services thread still running");
 		}
 		count++;
 		SLEEP(1000);
@@ -761,7 +761,7 @@ void _sighandler_quit(int sig)
 	/* Can I get away with leaving this locked till exit? */
 
 	sprintf(str,"     Got quit signal (%d)",sig);
-	lputs(str);
+	log_puts(LOG_NOTICE,str);
 	terminate();
 
 	if(is_daemon)
@@ -773,7 +773,7 @@ void _sighandler_quit(int sig)
 void _sighandler_rerun(int sig)
 {
 
-	lputs("     Got HUP (rerun) signal");
+	log_puts(LOG_NOTICE,"     Got HUP (rerun) signal");
 	
 #if 0	/* old way, we don't want to recycle all nodes, necessarily */
 	for(i=1;i<=scfg.sys_nodes;i++) {
@@ -853,7 +853,7 @@ static void handle_sigs(void)  {
 	while(1)  {
 		sigwait(&sigs,&sig);    /* wait here until signaled */
 		sprintf(str,"     Got signal (%d)",sig);
-		lputs(str);
+		log_puts(LOG_NOTICE,str);
 		switch(sig)  {
 			/* QUIT-type signals */
 			case SIGINT:
@@ -867,7 +867,7 @@ static void handle_sigs(void)  {
 				break;
 			default:
 				sprintf(str,"     Signal has no handler (unexpected)");
-				lputs(str);
+				log_puts(LOG_NOTICE,str);
 		}
 	}
 }
@@ -951,7 +951,7 @@ int main(int argc, char** argv)
     bbs_startup.size=sizeof(bbs_startup);
 
 	bbs_startup.lputs=bbs_lputs;
-	bbs_startup.event_log=event_lputs;
+	bbs_startup.event_lputs=event_lputs;
     bbs_startup.started=bbs_started;
     bbs_startup.terminated=bbs_terminated;
     bbs_startup.thread_up=thread_up;
@@ -1070,7 +1070,7 @@ int main(int argc, char** argv)
 	/* Read .ini file here */
 	if(ini_file[0]!=0 && (fp=fopen(ini_file,"r"))!=NULL) {
 		sprintf(str,"Reading %s",ini_file);
-		bbs_lputs(NULL,str);
+		bbs_lputs(NULL,LOG_INFO,str);
 	}
 
 	prompt = "[Threads: %d  Sockets: %d  Clients: %d  Served: %lu] (?=Help): ";
@@ -1456,7 +1456,7 @@ int main(int argc, char** argv)
     scfg.size=sizeof(scfg);
 	SAFECOPY(error,UNKNOWN_LOAD_ERROR);
 	sprintf(str,"Loading configuration files from %s", scfg.ctrl_dir);
-	bbs_lputs(NULL,str);
+	bbs_lputs(NULL,LOG_INFO,str);
 	if(!load_cfg(&scfg, NULL /* text.dat */, TRUE /* prep */, error)) {
 		fprintf(stderr,"\n!ERROR Loading Configuration Files: %s\n", error);
         return(-1);
@@ -1536,15 +1536,15 @@ int main(int argc, char** argv)
 #ifdef __unix__
 	if(getuid())  { /*  are we running as a normal user?  */
 		sprintf(str,"!Started as non-root user.  Cannot bind() to ports below %u.", IPPORT_RESERVED);
-		bbs_lputs(NULL,str);
+		bbs_lputs(NULL,LOG_ERR,str);
 	}
 	
 	else if(new_uid_name[0]==0)   /*  check the user arg, if we have uid 0 */
-		bbs_lputs(NULL,"Warning: No user account specified, running as root.");
+		bbs_lputs(NULL,LOG_WARNING,"Warning: No user account specified, running as root.");
 	
 	else 
 	{
-		bbs_lputs(NULL,"Waiting for child threads to bind ports...");
+		bbs_lputs(NULL,LOG_INFO,"Waiting for child threads to bind ports...");
 		while((run_bbs && !(bbs_running || bbs_stopped)) 
 				|| (run_ftp && !(ftp_running || ftp_stopped)) 
 				|| (run_web && !(web_running || web_stopped)) 
@@ -1552,25 +1552,25 @@ int main(int argc, char** argv)
 				|| (run_services && !(services_running || services_stopped)))  {
 			mswait(1000);
 			if(run_bbs && !(bbs_running || bbs_stopped))
-				bbs_lputs(NULL,"Waiting for BBS thread");
+				bbs_lputs(NULL,LOG_INFO,"Waiting for BBS thread");
 			if(run_web && !(web_running || web_stopped))
-				bbs_lputs(NULL,"Waiting for Web thread");
+				bbs_lputs(NULL,LOG_INFO,"Waiting for Web thread");
 			if(run_ftp && !(ftp_running || ftp_stopped))
-				bbs_lputs(NULL,"Waiting for FTP thread");
+				bbs_lputs(NULL,LOG_INFO,"Waiting for FTP thread");
 			if(run_mail && !(mail_running || mail_stopped))
-				bbs_lputs(NULL,"Waiting for Mail thread");
+				bbs_lputs(NULL,LOG_INFO,"Waiting for Mail thread");
 			if(run_services && !(services_running || services_stopped))
-				bbs_lputs(NULL,"Waiting for Services thread");
+				bbs_lputs(NULL,LOG_INFO,"Waiting for Services thread");
 		}
 
 		if(!do_setuid(FALSE))
 				/* actually try to change the uid of this process */
-			bbs_lputs(NULL,"!Setting new user_id failed!  (Does the user exist?)");
+			bbs_lputs(NULL,LOG_ERR,"!Setting new user_id failed!  (Does the user exist?)");
 	
 		else {
 			char str[256];
 			sprintf(str,"Successfully changed user_id to %s", new_uid_name);
-			bbs_lputs(NULL,str);
+			bbs_lputs(NULL,LOG_INFO,str);
 
 			/* Can't recycle servers (re-bind ports) as non-root user */
 			/* ToDo: Something seems to be broken here on FreeBSD now */
@@ -1661,7 +1661,7 @@ int main(int argc, char** argv)
 #endif
 					break;
 			}
-			lputs("");	/* redisplay prompt */
+			log_puts(LOG_INFO,"");	/* redisplay prompt */
 		}
 
 	terminate();
diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index 4b3f83a122a960a65299172b862da34f9215efda..806fc9a39b1a432fab4f29fbc7f8cdae64b2eefc 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -153,7 +153,7 @@ static int lprintf(char *fmt, ...)
     vsnprintf(sbuf,sizeof(sbuf),fmt,argptr);
 	sbuf[sizeof(sbuf)-1]=0;
     va_end(argptr);
-    return(startup->lputs(startup->cbdata,sbuf));
+    return(startup->lputs(startup->cbdata,LOG_INFO,sbuf));
 }
 
 #ifdef _WINSOCKAPI_
diff --git a/src/sbbs3/services.h b/src/sbbs3/services.h
index 1e2945c978eaca48e5023258b63fb46026d53d5e..51c44d913c2ec2469b89dcf4402e1544ebaa109e 100644
--- a/src/sbbs3/services.h
+++ b/src/sbbs3/services.h
@@ -59,7 +59,7 @@ typedef struct {
 	void*	cbdata;					/* Private data passed to callbacks */ 
 
 	/* Callbacks (NULL if unused) */
-	int 	(*lputs)(void*, char*);		/* Log - put string */
+	int 	(*lputs)(void*, int, char*);		/* Log - put string */
 	void	(*status)(void*, char*);
     void	(*started)(void*);
     void	(*terminated)(void*, int code);
diff --git a/src/sbbs3/startup.h b/src/sbbs3/startup.h
index b8ba42f0701a4d9121ec1a2383ddc742c401133a..ac701725edbc1405aa65f303c384f69915892db5 100644
--- a/src/sbbs3/startup.h
+++ b/src/sbbs3/startup.h
@@ -72,8 +72,8 @@ typedef struct {
 	void*	cbdata;					/* Private data passed to callbacks */ 
 
 	/* Callbacks (NULL if unused) */
-    int 	(*event_log)(char*);	/* Event log - put string			*/
-	int 	(*lputs)(void*, char*);	/* Log - put string					*/
+	int 	(*lputs)(void*, int, char*);	/* Log - put string					*/
+    int 	(*event_lputs)(int, char*);		/* Event log - put string			*/
 	void	(*status)(void*, char*);
     void	(*started)(void*);
     void	(*terminated)(void*, int code);
diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 6b2f83a586a2d7eb8ce4b5059d3cd3e22a2654a2..86dd6a427e784492607fcc319913bd942cb0127e 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -275,7 +275,7 @@ static int lprintf(char *fmt, ...)
     vsnprintf(sbuf,sizeof(sbuf),fmt,argptr);
 	sbuf[sizeof(sbuf)-1]=0;
     va_end(argptr);
-    return(startup->lputs(startup->cbdata,sbuf));
+    return(startup->lputs(startup->cbdata,LOG_INFO,sbuf));
 }
 
 #ifdef _WINSOCKAPI_
diff --git a/src/sbbs3/websrvr.h b/src/sbbs3/websrvr.h
index f13d94614b978fb24e0383d426e553c7305c0373..f8b494565d4b47a9a2d8e5ced87373eb7652cc29 100644
--- a/src/sbbs3/websrvr.h
+++ b/src/sbbs3/websrvr.h
@@ -55,7 +55,7 @@ typedef struct {
 	void*	cbdata;				/* Private data passed to callbacks */ 
 
 	/* Callbacks (NULL if unused) */
-	int 	(*lputs)(void*, char*);
+	int 	(*lputs)(void*, int, char*);
 	void	(*status)(void*, char*);
     void	(*started)(void*);
     void	(*terminated)(void*, int code);