diff --git a/src/syncterm/term.c b/src/syncterm/term.c
index ad35241ee4701b6149fd9f5eae83e37d69b0f247..6646942d1891af44d8b2651a98902326714249cb 100644
--- a/src/syncterm/term.c
+++ b/src/syncterm/term.c
@@ -289,6 +289,7 @@ static int lputs(void* cbdata, int level, const char* str)
 {
 	char msg[512];
 	int chars;
+	int oldhold=hold_update;
 
 #if defined(_WIN32) && defined(_DEBUG) && FALSE
 	sprintf(msg,"SyncTerm: %s\n",str);
@@ -327,7 +328,9 @@ static int lputs(void* cbdata, int level, const char* str)
 			SAFEPRINTF(msg,"!ERROR: %s\r\n",str);
 			break;
 	}
+	hold_update=FALSE;
 	chars=cputs(msg);
+	hold_update=oldhold;
 	gettextinfo(&log_ti);
 
 	return chars;