diff --git a/src/syntax.c b/src/syntax.c
index 80546bb..bc5c9b7 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -6383,7 +6383,9 @@
 static enum
 {
     EXP_SUBCMD,	    /* expand ":syn" sub-commands */
-    EXP_CASE	    /* expand ":syn case" arguments */
+    EXP_CASE,	    /* expand ":syn case" arguments */
+    EXP_SPELL,	    /* expand ":syn spell" arguments */
+    EXP_SYNC	    /* expand ":syn sync" arguments */
 } expand_what;
 
 /*
@@ -6434,6 +6436,10 @@
 		xp->xp_context = EXPAND_NOTHING;
 	    else if (STRNICMP(arg, "case", p - arg) == 0)
 		expand_what = EXP_CASE;
+	    else if (STRNICMP(arg, "spell", p - arg) == 0)
+		expand_what = EXP_SPELL;
+	    else if (STRNICMP(arg, "sync", p - arg) == 0)
+		expand_what = EXP_SYNC;
 	    else if (  STRNICMP(arg, "keyword", p - arg) == 0
 		    || STRNICMP(arg, "region", p - arg) == 0
 		    || STRNICMP(arg, "match", p - arg) == 0
@@ -6445,8 +6451,6 @@
     }
 }
 
-static char *(case_args[]) = {"match", "ignore", NULL};
-
 /*
  * Function given to ExpandGeneric() to obtain the list syntax names for
  * expansion.
@@ -6454,9 +6458,31 @@
     char_u *
 get_syntax_name(expand_T *xp UNUSED, int idx)
 {
-    if (expand_what == EXP_SUBCMD)
-	return (char_u *)subcommands[idx].name;
-    return (char_u *)case_args[idx];
+    switch (expand_what)
+    {
+	case EXP_SUBCMD:
+	    return (char_u *)subcommands[idx].name;
+	case EXP_CASE:
+	{
+	    static char *case_args[] = {"match", "ignore", NULL};
+	    return (char_u *)case_args[idx];
+	}
+	case EXP_SPELL:
+	{
+	    static char *spell_args[] =
+		{"toplevel", "notoplevel", "default", NULL};
+	    return (char_u *)spell_args[idx];
+	}
+	case EXP_SYNC:
+	{
+	    static char *sync_args[] =
+		{"ccomment", "clear", "fromstart",
+		 "linebreaks=", "linecont", "lines=", "match",
+		 "maxlines=", "minlines=", "region", NULL};
+	    return (char_u *)sync_args[idx];
+	}
+    }
+    return NULL;
 }
 
 #endif /* FEAT_CMDL_COMPL */
diff --git a/src/testdir/test_syntax.vim b/src/testdir/test_syntax.vim
index 7cb67e6..23ef154 100644
--- a/src/testdir/test_syntax.vim
+++ b/src/testdir/test_syntax.vim
@@ -150,6 +150,12 @@
   call feedkeys(":syn case \<C-A>\<C-B>\"\<CR>", 'tx')
   call assert_equal('"syn case ignore match', @:)
 
+  call feedkeys(":syn spell \<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_equal('"syn spell default notoplevel toplevel', @:)
+
+  call feedkeys(":syn sync \<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_equal('"syn sync ccomment clear fromstart linebreaks= linecont lines= match maxlines= minlines= region', @:)
+
   call feedkeys(":syn list \<C-A>\<C-B>\"\<CR>", 'tx')
   call assert_match('^"syn list Boolean Character ', @:)
 
diff --git a/src/version.c b/src/version.c
index 350b4ad..824a292 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    157,
+/**/
     156,
 /**/
     155,
