diff --git a/src/sbbs3/sexyz.c b/src/sbbs3/sexyz.c
index 11540941e36e2c6ac814a9b80ab09c21b64b01ff..40e6d93fdc63f99da2ea4b7105ba11f161db1d3c 100644
--- a/src/sbbs3/sexyz.c
+++ b/src/sbbs3/sexyz.c
@@ -1467,6 +1467,8 @@ int main(int argc, char **argv)
 
 	xmodem_init(&xm,NULL,&mode,lputs,xmodem_progress,send_byte,recv_byte,is_connected,NULL,flush);
 	zmodem_init(&zm,NULL,lputs,zmodem_progress,send_byte,recv_byte,is_connected,NULL,data_waiting,flush);
+	xm->log_level=&log_level;
+	zm->log_level=&log_level;
 
 	/* Generate path/sexyz[.host].ini from path/sexyz[.exe] */
 	SAFECOPY(str,argv[0]);
diff --git a/src/sbbs3/xmodem.c b/src/sbbs3/xmodem.c
index 3070597414d852280ab4fce1fb79536902f3cd71..2c288d9ca3a236d3c8efbcf9fa000c166cd4750c 100644
--- a/src/sbbs3/xmodem.c
+++ b/src/sbbs3/xmodem.c
@@ -60,6 +60,9 @@ static int lprintf(xmodem_t* xm, int level, const char *fmt, ...)
 
 	if(xm->lputs==NULL)
 		return(-1);
+	if(xm->log_level != NULL)
+		if(level > *xm->log_level)
+			return 0;
 
     va_start(argptr,fmt);
     vsnprintf(sbuf,sizeof(sbuf),fmt,argptr);
diff --git a/src/sbbs3/xmodem.h b/src/sbbs3/xmodem.h
index ca332f2775a153c71f210a70972a0a26bf8f528f..7eefda7e0bb40f50aa3f514e2b32f05d291bdd4b 100644
--- a/src/sbbs3/xmodem.h
+++ b/src/sbbs3/xmodem.h
@@ -65,6 +65,7 @@ typedef struct {
 	ulong		total_bytes;
 	unsigned	sent_files;
 	ulong		sent_bytes;
+	int			*log_level;
 	int			(*lputs)(void*, int level, const char* str);
 	void		(*progress)(void*, unsigned block_num, ulong offset, ulong fsize, time_t t);
 	int			(*send_byte)(void*, uchar ch, unsigned timeout);
diff --git a/src/sbbs3/zmodem.c b/src/sbbs3/zmodem.c
index 22ffae7c8a954b2c40ce7e73591fe0fe6be7f78e..07c6db41654164800199744f3c3ee20a08175d53 100644
--- a/src/sbbs3/zmodem.c
+++ b/src/sbbs3/zmodem.c
@@ -56,6 +56,9 @@ static int lprintf(zmodem_t* zm, int level, const char *fmt, ...)
 
 	if(zm->lputs==NULL)
 		return(-1);
+	if(zm->log_level != NULL)
+		if(level > *zm->log_level)
+			return 0;
 
     va_start(argptr,fmt);
     vsnprintf(sbuf,sizeof(sbuf),fmt,argptr);
diff --git a/src/sbbs3/zmodem.h b/src/sbbs3/zmodem.h
index a7d37b105881ef73092b3f129602f07b19164ba1..6b51be65a78bf67240b2cb2264a3a897782853ec 100644
--- a/src/sbbs3/zmodem.h
+++ b/src/sbbs3/zmodem.h
@@ -272,6 +272,7 @@ typedef struct {
 	unsigned	block_size;
 	unsigned	max_block_size;
 	uint32_t	max_file_size;		/* 0 = unlimited */
+	int			*log_level;
 
 	/* Callbacks */
 	void*		cbdata;