diff --git a/src/syntax.c b/src/syntax.c
index aed7ee6..68f01c1 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -22,6 +22,7 @@
 {
     char_u	*sg_name;	/* highlight group name */
     char_u	*sg_name_u;	/* uppercase of sg_name */
+    int		sg_cleared;	/* "hi clear" was used */
 /* for normal terminals */
     int		sg_term;	/* "term=" highlighting attributes */
     char_u	*sg_start;	/* terminal string for start highl */
@@ -7327,6 +7328,7 @@
 #ifdef FEAT_EVAL
 		HL_TABLE()[from_id - 1].sg_scriptID = current_SID;
 #endif
+		HL_TABLE()[from_id - 1].sg_cleared = FALSE;
 		redraw_all_later(SOME_VALID);
 	    }
 	}
@@ -8034,6 +8036,7 @@
 	    error = TRUE;
 	    break;
 	}
+	HL_TABLE()[idx].sg_cleared = FALSE;
 
 	/*
 	 * When highlighting has been given for a group, don't link it.
@@ -8171,6 +8174,8 @@
     static void
 highlight_clear(int idx)
 {
+    HL_TABLE()[idx].sg_cleared = TRUE;
+
     HL_TABLE()[idx].sg_term = 0;
     vim_free(HL_TABLE()[idx].sg_start);
     HL_TABLE()[idx].sg_start = NULL;
@@ -9958,7 +9963,13 @@
 							 && include_link != 0)
 	return (char_u *)"clear";
 #endif
-    if (idx < 0 || idx >= highlight_ga.ga_len)
+    if (idx < 0)
+	return NULL;
+    /* Items are never removed from the table, skip the ones that were cleared.
+     */
+    while (idx < highlight_ga.ga_len && HL_TABLE()[idx].sg_cleared)
+	++idx;
+    if (idx >= highlight_ga.ga_len)
 	return NULL;
     return HL_TABLE()[idx].sg_name;
 }
diff --git a/src/testdir/test_syntax.vim b/src/testdir/test_syntax.vim
index c93f8b7..232da75 100644
--- a/src/testdir/test_syntax.vim
+++ b/src/testdir/test_syntax.vim
@@ -156,6 +156,12 @@
   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', @:)
 
+  " Check that clearing "Aap" avoids it showing up before Boolean.
+  hi Aap ctermfg=blue
+  call feedkeys(":syn list \<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_match('^"syn list Aap Boolean Character ', @:)
+  hi clear Aap
+
   call feedkeys(":syn list \<C-A>\<C-B>\"\<CR>", 'tx')
   call assert_match('^"syn list Boolean Character ', @:)
 
@@ -192,11 +198,11 @@
     call assert_match('conceal off', execute('syntax conceal'))
   endif
 
-  syntax region Tar start=/</ end=/>/
+  syntax region Bar start=/</ end=/>/
   if 0
     syntax region NotTest start=/</ end=/>/ contains=@Spell
   endif
-  call assert_match('Tar', execute('syntax'))
+  call assert_match('Bar', execute('syntax'))
   call assert_notmatch('NotTest', execute('syntax'))
   call assert_notmatch('Spell', execute('syntax'))
 
@@ -206,6 +212,8 @@
     syntax rest
   endif
   call assert_equal(a, execute('hi Foo'))
+  hi clear Bar
+  hi clear Foo
 
   set ft=tags
   syn off
@@ -298,7 +306,9 @@
 
 func Test_invalid_arg()
   call assert_fails('syntax case asdf', 'E390:')
-  call assert_fails('syntax conceal asdf', 'E390:')
+  if has('conceal')
+    call assert_fails('syntax conceal asdf', 'E390:')
+  endif
   call assert_fails('syntax spell asdf', 'E390:')
 endfunc
 
@@ -313,13 +323,15 @@
 
 func Test_syn_clear()
   syntax keyword Foo foo
-  syntax keyword Tar tar
+  syntax keyword Bar tar
   call assert_match('Foo', execute('syntax'))
-  call assert_match('Tar', execute('syntax'))
+  call assert_match('Bar', execute('syntax'))
   syn clear Foo
   call assert_notmatch('Foo', execute('syntax'))
-  call assert_match('Tar', execute('syntax'))
-  syn clear Foo Tar
+  call assert_match('Bar', execute('syntax'))
+  syn clear Foo Bar
   call assert_notmatch('Foo', execute('syntax'))
-  call assert_notmatch('Tar', execute('syntax'))
+  call assert_notmatch('Bar', execute('syntax'))
+  hi clear Foo
+  hi clear Bar
 endfunc
diff --git a/src/version.c b/src/version.c
index 1d7af33..8184b66 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    201,
+/**/
     200,
 /**/
     199,
