diff --git a/pd/src/s_inter.c b/pd/src/s_inter.c
index 8e80c696f7bd0e8b9f40aaa08d9b37886a252094..593bdf40917b6003fac755459821a2e7c7dc6ecd 100644
--- a/pd/src/s_inter.c
+++ b/pd/src/s_inter.c
@@ -714,8 +714,7 @@ void sys_vvgui(const char *fmt, va_list ap) {
     }
     sys_guibufhead += msglen;
     sys_bytessincelastping += msglen;
-    int fmtlen = strlen(fmt);
-    if (fmtlen) lastend = fmt[fmtlen-1];
+    if (sys_guibufhead>0) lastend=sys_guibuf[sys_guibufhead-1];
 }
 #undef sys_vgui
 void sys_vgui(const char *fmt, ...) {