diff --git a/src/services/findAllReferences.ts b/src/services/findAllReferences.ts
index f96c53ee200..ef6a344c992 100644
--- a/src/services/findAllReferences.ts
+++ b/src/services/findAllReferences.ts
@@ -1196,7 +1196,9 @@ namespace ts.FindAllReferences.Core {
// For `export { foo as bar }`, rename `foo`, but not `bar`.
if (!isForRenameWithPrefixAndSuffixText(state.options) || alwaysGetReferences) {
- const exportKind = referenceLocation.originalKeywordKind === SyntaxKind.DefaultKeyword ? ExportKind.Default : ExportKind.Named;
+ const isDefaultExport = referenceLocation.originalKeywordKind === SyntaxKind.DefaultKeyword
+ || exportSpecifier.name.originalKeywordKind === SyntaxKind.DefaultKeyword;
+ const exportKind = isDefaultExport ? ExportKind.Default : ExportKind.Named;
const exportSymbol = Debug.assertDefined(exportSpecifier.symbol);
const exportInfo = Debug.assertDefined(getExportInfo(exportSymbol, exportKind, state.checker));
searchForImportsOfExport(referenceLocation, exportSymbol, exportInfo, state);
diff --git a/src/services/importTracker.ts b/src/services/importTracker.ts
index 6b50d62d9b4..e8512528af9 100644
--- a/src/services/importTracker.ts
+++ b/src/services/importTracker.ts
@@ -269,7 +269,7 @@ namespace ts.FindAllReferences {
}
/**
- * `import x = require("./x") or `import * as x from "./x"`.
+ * `import x = require("./x")` or `import * as x from "./x"`.
* An `export =` may be imported by this syntax, so it may be a direct import.
* If it's not a direct import, it will be in `indirectUsers`, so we don't have to do anything here.
*/
diff --git a/tests/cases/fourslash/findAllRefsImportDefault.ts b/tests/cases/fourslash/findAllRefsImportDefault.ts
new file mode 100644
index 00000000000..15b3bda8ddf
--- /dev/null
+++ b/tests/cases/fourslash/findAllRefsImportDefault.ts
@@ -0,0 +1,18 @@
+///
+
+// @Filename: f.ts
+////export { [|foo|] as [|{| "isWriteAccess": true, "isDefinition": true |}default|] };
+////function /*start*/[|{| "isWriteAccess": true, "isDefinition": true |}foo|](a: number, b: number) {
+//// return a + b;
+////}
+
+// @Filename: b.ts
+////import [|{| "isWriteAccess": true, "isDefinition": true |}bar|] from "./f";
+////[|bar|](1, 2);
+
+verify.noErrors();
+const [ foo0, foo1, foo2, bar0, bar1 ] = test.ranges();
+const fooGroup = { definition: "function foo(a: number, b: number): number", ranges: [foo0, foo2] };
+const exportDefaultGroup = { definition: "(alias) function foo(a: number, b: number): number\nexport default", ranges: [foo1] };
+const barGroup = { definition: "(alias) function bar(a: number, b: number): number\nimport bar", ranges: [bar0, bar1]};
+verify.referenceGroups("start", [fooGroup, exportDefaultGroup, barGroup]);
diff --git a/tests/cases/fourslash/findAllRefsImportNamed.ts b/tests/cases/fourslash/findAllRefsImportNamed.ts
new file mode 100644
index 00000000000..5d18a8de164
--- /dev/null
+++ b/tests/cases/fourslash/findAllRefsImportNamed.ts
@@ -0,0 +1,15 @@
+///
+
+// @Filename: f.ts
+////export { [|foo|] as [|{| "isWriteAccess": true, "isDefinition": true |}foo|] }
+////function /*start*/[|{| "isWriteAccess": true, "isDefinition": true |}foo|](a: number, b: number) { }
+
+// @Filename: b.ts
+////import x = require("./f");
+////x.[|foo|](1, 2);
+
+verify.noErrors();
+const [ foo0, foo1, foo2, foo3 ] = test.ranges();
+const fooGroup = { definition: "function foo(a: number, b: number): void", ranges: [foo0, foo2] };
+const exportFooGroup = { definition: "(alias) function foo(a: number, b: number): void\nexport foo", ranges: [foo1, foo3] };
+verify.referenceGroups("start", [fooGroup, exportFooGroup]);