diff --git a/src/services/completions.ts b/src/services/completions.ts
index 88cee321e10..8708fc26fa2 100644
--- a/src/services/completions.ts
+++ b/src/services/completions.ts
@@ -2432,7 +2432,7 @@ namespace ts.Completions {
!existingMemberNames.has(propertySymbol.escapedName) &&
!!propertySymbol.declarations &&
!(getDeclarationModifierFlagsFromSymbol(propertySymbol) & ModifierFlags.Private) &&
- !isPrivateIdentifierPropertyDeclaration(propertySymbol.valueDeclaration));
+ !(propertySymbol.valueDeclaration && isPrivateIdentifierPropertyDeclaration(propertySymbol.valueDeclaration)));
}
/**
diff --git a/tests/cases/fourslash/completionListInheritedClassMembers.ts b/tests/cases/fourslash/completionListInheritedClassMembers.ts
new file mode 100644
index 00000000000..334374eab44
--- /dev/null
+++ b/tests/cases/fourslash/completionListInheritedClassMembers.ts
@@ -0,0 +1,43 @@
+///
+
+// @filename: a.ts
+////interface I {
+//// m2(): void;
+//// m3(): void;
+////}
+////
+////type T1 = I;
+////export interface A1 extends T1 {
+//// m1(): void;
+////}
+////export class A1 {}
+////
+////type T2 = Partial
+////export interface A2 extends T2 {
+//// m1(): void;
+////}
+////export class A2 {}
+////
+////type T3 = Pick
+////export interface A3 extends T3 {
+//// m1(): void;
+////}
+////export class A3 {}
+
+// @filename: b.ts
+////import { A1, A2, A3 } from './a';
+////class B1 extends A1 {
+//// /*1*/
+////}
+////class B2 extends A2 {
+//// /*2*/
+////}
+////class B3 extends A3 {
+//// /*3*/
+////}
+
+verify.completions(
+ { marker: "1", exact: ["m1", "m2", "m3", ...completion.classElementKeywords], isNewIdentifierLocation: true },
+ { marker: "2", exact: ["m1", "m2", "m3", ...completion.classElementKeywords], isNewIdentifierLocation: true },
+ { marker: "3", exact: ["m1", "m3", ...completion.classElementKeywords], isNewIdentifierLocation: true }
+);