diff --git a/cli-chansession.c b/cli-chansession.c
index e34c6fdca352e55ee67a0306f9e5f1c5602f8592..6c48f055f7a6840d3dc874aa3182d4ab9aeb111e 100644
--- a/cli-chansession.c
+++ b/cli-chansession.c
@@ -178,7 +178,7 @@ static void put_termcodes() {
 	bufpos2 = ses.writepayload->pos;
 
 	buf_setpos(ses.writepayload, bufpos1); /* Jump back */
-	buf_putint(ses.writepayload, bufpos2 - bufpos1); /* len(termcodes) */
+	buf_putint(ses.writepayload, bufpos2 - bufpos1 - 4); /* len(termcodes) */
 	buf_setpos(ses.writepayload, bufpos2); /* Back where we were */
 
 	TRACE(("leave put_termcodes"));