diff --git a/src/services/codefixes/fixAddMissingMember.ts b/src/services/codefixes/fixAddMissingMember.ts
index 2542a0732342b..80f4f51c06a8c 100644
--- a/src/services/codefixes/fixAddMissingMember.ts
+++ b/src/services/codefixes/fixAddMissingMember.ts
@@ -178,7 +178,7 @@ namespace ts.codefix {
const argIndex = findIndex(parent.parent.arguments, arg => arg === parent);
if (argIndex < 0) return undefined;
- const signature = singleOrUndefined(checker.getSignaturesOfType(checker.getTypeAtLocation(parent.parent.expression), SignatureKind.Call));
+ const signature = checker.getResolvedSignature(parent.parent);
if (!(signature && signature.declaration && signature.parameters[argIndex])) return undefined;
const param = signature.parameters[argIndex].valueDeclaration;
diff --git a/tests/cases/fourslash/codeFixAddMissingProperties24.ts b/tests/cases/fourslash/codeFixAddMissingProperties24.ts
new file mode 100644
index 0000000000000..92db088dfff90
--- /dev/null
+++ b/tests/cases/fourslash/codeFixAddMissingProperties24.ts
@@ -0,0 +1,27 @@
+///
+
+////interface A {
+//// a: number;
+//// b: string;
+////}
+////interface B {
+//// c: boolean;
+////}
+////interface C {
+//// a: A;
+//// b: B;
+////}
+////function f(type: T, obj: C[T]): string {
+//// return "";
+////}
+////[|f("a", {});|]
+
+verify.codeFix({
+ index: 0,
+ description: ts.Diagnostics.Add_missing_properties.message,
+ newRangeContent:
+`f("a", {
+ a: 0,
+ b: ""
+});`,
+});