diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 62f1f71b96a71767365823b77eade7c7f4dc1f9d..4c5ac282f5b0455c4952988af48543848cae63e6 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -4645,10 +4645,10 @@ void http_logging_thread(void* arg)
 		char	timestr[128];
 		char	sizestr[100];
 
-		sem_getvalue(&log_list.sem, &pending);
-		if(logfile && (!pending))
+		if(!listSemTryWait(&log_list)) {
 			fflush(logfile);
-		listSemWait(&log_list);
+			listSemWait(&log_list);
+		}
 
 		ld=listShiftNode(&log_list);
 		/*