diff --git a/src/services/rename.ts b/src/services/rename.ts
index 775051a8364..141e00268a4 100644
--- a/src/services/rename.ts
+++ b/src/services/rename.ts
@@ -92,6 +92,7 @@ namespace ts.Rename {
function nodeIsEligibleForRename(node: Node): boolean {
switch (node.kind) {
case SyntaxKind.Identifier:
+ case SyntaxKind.PrivateIdentifier:
case SyntaxKind.StringLiteral:
case SyntaxKind.NoSubstitutionTemplateLiteral:
case SyntaxKind.ThisKeyword:
diff --git a/tests/cases/fourslash/renamePrivateFields.ts b/tests/cases/fourslash/renamePrivateFields.ts
new file mode 100644
index 00000000000..945caf9c0b9
--- /dev/null
+++ b/tests/cases/fourslash/renamePrivateFields.ts
@@ -0,0 +1,12 @@
+///
+
+////class Foo {
+//// [|/**/#foo|] = 1;
+////
+//// getFoo() {
+//// return this.#foo;
+//// }
+////}
+
+goTo.marker("");
+verify.renameInfoSucceeded("#foo");
diff --git a/tests/cases/fourslash/renamePrivateFields1.ts b/tests/cases/fourslash/renamePrivateFields1.ts
new file mode 100644
index 00000000000..1c6e7907981
--- /dev/null
+++ b/tests/cases/fourslash/renamePrivateFields1.ts
@@ -0,0 +1,11 @@
+///
+
+////class Foo {
+//// [|[|{| "contextRangeIndex": 0 |}#foo|] = 1;|]
+////
+//// getFoo() {
+//// return this.[|#foo|];
+//// }
+////}
+
+verify.rangesWithSameTextAreRenameLocations("#foo");