updated for version 7.0073
diff --git a/src/mbyte.c b/src/mbyte.c
index c771788..3a8b558 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -2255,6 +2255,7 @@
 show_utf8()
 {
     int		len;
+    int		rlen = 0;
     char_u	*line;
     int		clen;
     int		i;
@@ -2269,7 +2270,6 @@
 	return;
     }
 
-    IObuff[0] = NUL;
     clen = 0;
     for (i = 0; i < len; ++i)
     {
@@ -2277,11 +2277,17 @@
 	{
 	    /* start of (composing) character, get its length */
 	    if (i > 0)
-		STRCAT(IObuff, "+ ");
+	    {
+		STRCPY(IObuff + rlen, "+ ");
+		rlen += 2;
+	    }
 	    clen = utf_ptr2len_check(line + i);
 	}
-	sprintf((char *)IObuff + STRLEN(IObuff), "%02x ", line[i]);
+	sprintf((char *)IObuff + rlen, "%02x ", line[i]);
 	--clen;
+	rlen += STRLEN(IObuff + rlen);
+	if (rlen > IOSIZE - 20)
+	    break;
     }
 
     msg(IObuff);