diff --git a/src/option.c b/src/option.c
index d70dc7b..d1f1d13 100644
--- a/src/option.c
+++ b/src/option.c
@@ -12786,17 +12786,18 @@
     int t;
     char_u *cp;
 
-    if ((!var[0] || (var[0] == '0' && !var[1])))
+    if (var[0] == NUL || (var[0] == '0' && var[1] == NUL))
     {
 	*array = NULL;
 	return TRUE;
     }
 
-    for (cp = var; *cp; ++cp)
+    for (cp = var; *cp != NUL; ++cp)
     {
-	if (cp == var || *(cp - 1) == ',')
+	if (cp == var || cp[-1] == ',')
 	{
 	    char_u *end;
+
 	    if (strtol((char *)cp, (char **)&end, 10) <= 0)
 	    {
 		if (cp != end)
@@ -12809,7 +12810,7 @@
 
 	if (VIM_ISDIGIT(*cp))
 	    continue;
-	if (*cp == ',' && cp > var && *(cp - 1) != ',')
+	if (cp[0] == ',' && cp > var && cp[-1] != ',' && cp[1] != NUL)
 	{
 	    ++valcount;
 	    continue;
@@ -12818,16 +12819,16 @@
 	return FALSE;
     }
 
-    *array = (int *) alloc((unsigned) ((valcount + 1) * sizeof(int)));
+    *array = (int *)alloc((unsigned) ((valcount + 1) * sizeof(int)));
     (*array)[0] = valcount;
 
     t = 1;
-    for (cp = var; *cp;)
+    for (cp = var; *cp != NUL;)
     {
 	(*array)[t++] = atoi((char *)cp);
-	while (*cp && *cp != ',')
+	while (*cp  != NUL && *cp != ',')
 	    ++cp;
-	if (*cp)
+	if (*cp != NUL)
 	    ++cp;
     }
 
diff --git a/src/testdir/test_vartabs.vim b/src/testdir/test_vartabs.vim
index c43e178..c847095 100644
--- a/src/testdir/test_vartabs.vim
+++ b/src/testdir/test_vartabs.vim
@@ -5,11 +5,11 @@
 endif
 
 source view_util.vim
-function! s:compare_lines(expect, actual)
+func s:compare_lines(expect, actual)
   call assert_equal(join(a:expect, "\n"), join(a:actual, "\n"))
-endfunction
+endfunc
 
-func! Test_vartabs()
+func Test_vartabs()
   new
   %d
 
@@ -261,7 +261,7 @@
   bwipeout!
 endfunc
 
-func! Test_vartabs_linebreak()
+func Test_vartabs_linebreak()
   if winwidth(0) < 40
     return
   endif
@@ -296,3 +296,14 @@
   bw!
   set nolist listchars&vim
 endfunc
+
+func Test_vartabs_failures()
+  call assert_fails('set vts=8,')
+  call assert_fails('set vsts=8,')
+  call assert_fails('set vts=8,,8')
+  call assert_fails('set vsts=8,,8')
+  call assert_fails('set vts=8,,8,')
+  call assert_fails('set vsts=8,,8,')
+  call assert_fails('set vts=,8')
+  call assert_fails('set vsts=,8')
+endfunc
diff --git a/src/version.c b/src/version.c
index 4a5c4b7..350c8a7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -793,6 +793,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    479,
+/**/
     478,
 /**/
     477,
