diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index e569b9a..dbebbd7 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -23,7 +23,7 @@
 #
 #	OLE interface: OLE=yes (usually with GUI=yes)
 #
-#	Multibyte support: MBYTE=yes
+#	Multibyte support: MBYTE=yes (default is no)
 #
 #	IME support: IME=yes	(requires GUI=yes)
 #	  DYNAMIC_IME=[yes or no]  (to load the imm32.dll dynamically, default
diff --git a/src/normal.c b/src/normal.c
index aae515c..3a336d5 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -7880,9 +7880,13 @@
     /*
      * "g8": Display the bytes used for the UTF-8 character under the
      * cursor.	It is displayed in hex.
+     * "8g8" finds illegal byte sequence.
      */
     case '8':
-	show_utf8();
+	if (cap->count0 == 8)
+	    utf_find_illegal();
+	else
+	    show_utf8();
 	break;
 #endif
 
diff --git a/src/os_vms.c b/src/os_vms.c
index 28976b1..f87a1cd 100644
--- a/src/os_vms.c
+++ b/src/os_vms.c
@@ -298,35 +298,35 @@
     int
 vms_read(char *inbuf, size_t nbytes)
 {
-    int         status, function, len;
-    TT_MODE     tt_mode;
-    ITEM        itmlst[2];     /* terminates on everything */
+    int		status, function, len;
+    TT_MODE	tt_mode;
+    ITEM	itmlst[2];     /* terminates on everything */
     static long trm_mask[8] = {-1, -1, -1, -1, -1, -1, -1, -1};
 
     /* whatever happened earlier we need an iochan here */
     if (!iochan)
-        tt_mode = get_tty();
+	tt_mode = get_tty();
 
     /* important: clean the inbuf */
     memset(inbuf, 0, nbytes);
 
     /* set up the itemlist for the first read */
     vul_item(&itmlst[0], 0, TRM$_MODIFIERS,
-         (char *)( TRM$M_TM_NOECHO  | TRM$M_TM_NOEDIT    |
-                   TRM$M_TM_NOFILTR | TRM$M_TM_TRMNOECHO |
-                   TRM$M_TM_NORECALL) , 0);
+	 (char *)( TRM$M_TM_NOECHO  | TRM$M_TM_NOEDIT	 |
+		   TRM$M_TM_NOFILTR | TRM$M_TM_TRMNOECHO |
+		   TRM$M_TM_NORECALL) , 0);
     vul_item(&itmlst[1], sizeof(trm_mask), TRM$_TERM, (char *)&trm_mask, 0);
 
     /* wait forever for a char */
     function = (IO$_READLBLK | IO$M_EXTEND);
     status = sys$qiow(0, iochan, function, &iosb, 0, 0,
-                         inbuf, nbytes-1, 0, 0, &itmlst, sizeof(itmlst));
+			 inbuf, nbytes-1, 0, 0, &itmlst, sizeof(itmlst));
     len = strlen(inbuf); /* how many chars we got? */
 
     /* read immedatelly the rest in the IO queue   */
     function = (IO$_READLBLK | IO$M_TIMED | IO$M_ESCAPE | IO$M_NOECHO | IO$M_NOFILTR);
     status = sys$qiow(0, iochan, function, &iosb, 0, 0,
-                         inbuf+len, nbytes-1-len, 0, 0, 0, 0);
+			 inbuf+len, nbytes-1-len, 0, 0, 0, 0);
 
     len = strlen(inbuf); /* return the total length */
 
diff --git a/src/testdir/test61.ok b/src/testdir/test61.ok
index 0a22457..c23fe22 100644
--- a/src/testdir/test61.ok
+++ b/src/testdir/test61.ok
@@ -7,12 +7,12 @@
 123456
 1234567
 12345678
-123456789
 456789
 3456789
 23456789
 123456789
 123456789
+123456789
 123456
 2222 -----
 123456abc
