diff --git a/src/tabpanel.c b/src/tabpanel.c
index 599e434..3845faa 100644
--- a/src/tabpanel.c
+++ b/src/tabpanel.c
@@ -164,7 +164,7 @@
     int		row = 0;
     int		off = 0;
 #endif
-int		vsrow = 0;
+    int		vsrow = 0;
     int		is_right = tpl_align == ALIGN_RIGHT;
 
     if (maxwidth == 0)
@@ -198,14 +198,10 @@
 		    maxwidth - VERT_LEN, &curtab_row, NULL);
 	    do_by_tplmode(TPLMODE_REDRAW, VERT_LEN, maxwidth, &curtab_row,
 		    NULL);
-	    // clear for multi-byte vert separater
-	    screen_fill(0, cmdline_row, COLUMNS_WITHOUT_TPL(),
-		    COLUMNS_WITHOUT_TPL() + VERT_LEN,
-		    TPL_FILLCHAR, TPL_FILLCHAR, vs_attr);
-	    // draw vert separater in tabpanel
+	    // draw vert separator in tabpanel
 	    for (vsrow = 0; vsrow < cmdline_row; vsrow++)
 		screen_putchar(curwin->w_fill_chars.tpl_vert, vsrow,
-			COLUMNS_WITHOUT_TPL(), vs_attr);
+			topframe->fr_width, vs_attr);
 	}
 	else
 	{
@@ -214,10 +210,7 @@
 		    &curtab_row, NULL);
 	    do_by_tplmode(TPLMODE_REDRAW, 0, maxwidth - VERT_LEN,
 		    &curtab_row, NULL);
-	    // clear for multi-byte vert separater
-	    screen_fill(0, cmdline_row, maxwidth - VERT_LEN,
-		    maxwidth, TPL_FILLCHAR, TPL_FILLCHAR, vs_attr);
-	    // draw vert separater in tabpanel
+	    // draw vert separator in tabpanel
 	    for (vsrow = 0; vsrow < cmdline_row; vsrow++)
 		screen_putchar(curwin->w_fill_chars.tpl_vert, vsrow,
 			maxwidth - VERT_LEN, vs_attr);
@@ -272,8 +265,8 @@
     int is_right = tpl_align == ALIGN_RIGHT;
     if (tplmode == TPLMODE_REDRAW)
 	screen_fill(row_start, row_end,
-		(is_right ? COLUMNS_WITHOUT_TPL() : 0) + col_start,
-		(is_right ? COLUMNS_WITHOUT_TPL() : 0) + col_end,
+		(is_right ? topframe->fr_width : 0) + col_start,
+		(is_right ? topframe->fr_width : 0) + col_end,
 		TPL_FILLCHAR, TPL_FILLCHAR, attr);
 }
 
@@ -356,7 +349,7 @@
 	    if (*pargs->pcol + chcells <= pargs->col_end)
 	    {
 		int off = (tpl_align == ALIGN_RIGHT)
-			? COLUMNS_WITHOUT_TPL()
+			? topframe->fr_width
 			: 0;
 		if (TPLMODE_REDRAW == tplmode
 			&& (*pargs->prow - pargs->offsetrow >= 0
@@ -628,7 +621,7 @@
 		    p++;
 		}
 
-		while (p[i] != '\n' && p[i] != '\r' && (p[i] != NUL))
+		while (p[i] != '\n' && p[i] != '\r' && p[i] != NUL)
 		{
 		    if (i + 1 >= sizeof(buf))
 			break;
