diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 3384fe8..a30178b 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -866,7 +866,6 @@
 	{
 	    set_string_option_direct((char_u *)"vts", -1, new_ts_str,
 							OPT_FREE|OPT_LOCAL, 0);
-	    vim_free(new_ts_str);
 	    curbuf->b_p_vts_array = new_vts_array;
 	    vim_free(old_vts_ary);
 	}
@@ -877,6 +876,7 @@
 	    curbuf->b_p_ts = tabstop_first(new_vts_array);
 	    vim_free(new_vts_array);
 	}
+	vim_free(new_ts_str);
     }
 #else
     curbuf->b_p_ts = new_ts;
diff --git a/src/option.c b/src/option.c
index 4fdfe10..50d42eb 100644
--- a/src/option.c
+++ b/src/option.c
@@ -12870,7 +12870,7 @@
 tabstop_fromto(
 	colnr_T start_col,
 	colnr_T end_col,
-	int	ts,
+	int	ts_arg,
 	int	*vts,
 	int	*ntabs,
 	int	*nspcs)
@@ -12880,12 +12880,14 @@
     int		padding = 0;
     int		tabcount;
     int		t;
+    int		ts = ts_arg == 0 ? curbuf->b_p_ts : ts_arg;
 
     if (vts == NULL || vts[0] == 0)
     {
 	int tabs = 0;
-	int initspc = ts - (start_col % ts);
+	int initspc = 0;
 
+	initspc = ts - (start_col % ts);
 	if (spaces >= initspc)
 	{
 	    spaces -= initspc;
diff --git a/src/screen.c b/src/screen.c
index c03443f..954beef 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -4753,13 +4753,13 @@
 		    n_extra = win_lbr_chartabsize(wp, line, p, (colnr_T)vcol,
 								    NULL) - 1;
 		    if (c == TAB && n_extra + col > wp->w_width)
-#ifdef FEAT_VARTABS
+# ifdef FEAT_VARTABS
 			n_extra = tabstop_padding(vcol, wp->w_buffer->b_p_ts,
-					wp->w_buffer->b_p_vts_array) - 1;
-#else
+					      wp->w_buffer->b_p_vts_array) - 1;
+# else
 			n_extra = (int)wp->w_buffer->b_p_ts
 				       - vcol % (int)wp->w_buffer->b_p_ts - 1;
- #endif
+# endif
 
 # ifdef FEAT_MBYTE
 		    c_extra = mb_off > 0 ? MB_FILLER_CHAR : ' ';
@@ -4902,6 +4902,11 @@
 			p_extra_free = p;
 			for (i = 0; i < tab_len; i++)
 			{
+			    if (*p == NUL)
+			    {
+				tab_len = i;
+				break;
+			    }
 #ifdef FEAT_MBYTE
 			    mb_char2bytes(lcs_tab2, p);
 			    p += mb_char2len(lcs_tab2);
diff --git a/src/testdir/test_vartabs.vim b/src/testdir/test_vartabs.vim
index 581ff8b..c43e178 100644
--- a/src/testdir/test_vartabs.vim
+++ b/src/testdir/test_vartabs.vim
@@ -262,21 +262,37 @@
 endfunc
 
 func! Test_vartabs_linebreak()
-  if winwidth(0) < 80
+  if winwidth(0) < 40
     return
   endif
   new
-  70vnew
+  40vnew
   %d
-  setl linebreak vartabstop=10,15,20,40
+  setl linebreak vartabstop=10,20,30,40
   call setline(1, "\tx\tx\tx\tx")
 
-  let lines = ScreenLines([1, 2], winwidth(0))
-  let expect = ['          x              x                   x                        ',
-        \       '               x                                                      ']
+  let expect = ['          x                             ',
+        \       'x                   x                   ',
+        \       'x                                       ']
+  let lines = ScreenLines([1, 3], winwidth(0))
+  call s:compare_lines(expect, lines)
+  setl list listchars=tab:>-
+  let expect = ['>---------x>------------------          ',
+        \       'x>------------------x>------------------',
+        \       'x                                       ']
+  let lines = ScreenLines([1, 3], winwidth(0))
+  call s:compare_lines(expect, lines)
+  setl linebreak vartabstop=40
+  let expect = ['>---------------------------------------',
+        \       'x>--------------------------------------',
+        \       'x>--------------------------------------',
+        \       'x>--------------------------------------',
+        \       'x                                       ']
+  let lines = ScreenLines([1, 5], winwidth(0))
   call s:compare_lines(expect, lines)
 
   " cleanup
   bw!
   bw!
+  set nolist listchars&vim
 endfunc
diff --git a/src/version.c b/src/version.c
index 31db840..4e3770e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -790,6 +790,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    126,
+/**/
     125,
 /**/
     124,
