diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 99a1e31a20da05dea7e3992a622c7c08a5181e1f..f3069016a1812917cdb4e0a902cc1331d7119aed 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -2995,6 +2995,7 @@ bool sbbs_t::init()
 			lprintf(LOG_ERR,"Perhaps this node is already running");
 			return(false); 
 		}
+		setvbuf(logfile_fp, NULL, _IOLBF, 0);
 
 		if(filelength(fileno(logfile_fp))) {
 			log(crlf);
diff --git a/src/sbbs3/xtrn_sec.cpp b/src/sbbs3/xtrn_sec.cpp
index 14d6f45fd5a77728f5448aed4ea6d1cd37029ae0..0fe12a8d2204c84c7786ce852fcad001676ca88a 100644
--- a/src/sbbs3/xtrn_sec.cpp
+++ b/src/sbbs3/xtrn_sec.cpp
@@ -1740,6 +1740,8 @@ bool sbbs_t::exec_xtrn(uint xtrnnum)
 		sprintf(str,"%snode.log",cfg.node_dir);
 		if((logfile_fp=fopen(str,"a+b"))==NULL)
 			errormsg(WHERE,ERR_OPEN,str,O_WRONLY|O_CREAT|O_APPEND);
+		else
+			setvbuf(logfile_fp, NULL, _IOLBF, 0);
 	}
 
 	sprintf(str,"%sfile/%04u.dwn",cfg.data_dir,useron.number);