diff -up procps-3.2.7/top.c.p10 procps-3.2.7/top.c
--- procps-3.2.7/top.c.p10	2008-09-01 11:33:06.000000000 +0200
+++ procps-3.2.7/top.c	2008-09-01 11:33:06.000000000 +0200
@@ -2462,7 +2462,10 @@ static void windows_stage2 (void)
    int i;
 
    for (i = 0; i < GROUPSMAX; i++) {
-      win_names(&Winstk[i], Winstk[i].rc.winname);
+      /* Please, never use something like sprintf(x, "%s", x); ... see win_names() */
+      char buf[WINNAMSIZ];
+      strncpy(buf, Winstk[i].rc.winname, WINNAMSIZ);
+      win_names(&Winstk[i], buf);
       capsmk(&Winstk[i]);
    }
    // rely on this next guy to force a call (eventually) to reframewins
