diff --git a/src/services/documentHighlights.ts b/src/services/documentHighlights.ts
index d3a165f3b8d..37873914411 100644
--- a/src/services/documentHighlights.ts
+++ b/src/services/documentHighlights.ts
@@ -66,8 +66,12 @@ namespace ts {
case SyntaxKind.SwitchKeyword:
return useParent(node.parent, isSwitchStatement, getSwitchCaseDefaultOccurrences);
case SyntaxKind.CaseKeyword:
- case SyntaxKind.DefaultKeyword:
- return useParent(node.parent.parent.parent, isSwitchStatement, getSwitchCaseDefaultOccurrences);
+ case SyntaxKind.DefaultKeyword: {
+ if (isDefaultClause(node.parent) || isCaseClause(node.parent)) {
+ return useParent(node.parent.parent.parent, isSwitchStatement, getSwitchCaseDefaultOccurrences);
+ }
+ return undefined;
+ }
case SyntaxKind.BreakKeyword:
case SyntaxKind.ContinueKeyword:
return useParent(node.parent, isBreakOrContinueStatement, getBreakOrContinueStatementOccurrences);
diff --git a/tests/cases/fourslash/documentHighlightDefaultInKeyword.ts b/tests/cases/fourslash/documentHighlightDefaultInKeyword.ts
new file mode 100644
index 00000000000..98d45f88ceb
--- /dev/null
+++ b/tests/cases/fourslash/documentHighlightDefaultInKeyword.ts
@@ -0,0 +1,8 @@
+///
+
+////[|case|]
+////[|default|]
+
+const [defaultKeywordRange, caseKeywordRange] = test.ranges();
+verify.noDocumentHighlights(defaultKeywordRange);
+verify.noDocumentHighlights(caseKeywordRange);
diff --git a/tests/cases/fourslash/documentHighlightDefaultInSwitch.ts b/tests/cases/fourslash/documentHighlightDefaultInSwitch.ts
new file mode 100644
index 00000000000..e30366bcf27
--- /dev/null
+++ b/tests/cases/fourslash/documentHighlightDefaultInSwitch.ts
@@ -0,0 +1,13 @@
+///
+
+////const foo = 'foo';
+////[|switch|] (foo) {
+//// [|case|] 'foo':
+//// [|break|];
+//// [|default|]:
+//// [|break|];
+////}
+
+const [r0, r1, r2, r3, r4] = test.ranges();
+verify.documentHighlightsOf(r1, [r0, r1, r2, r3, r4]);
+verify.documentHighlightsOf(r4, [r0, r1, r2, r3, r4]);