diff --git a/src/services/codefixes/fixAwaitInSyncFunction.ts b/src/services/codefixes/fixAwaitInSyncFunction.ts
index bfd68e05d0a..0f0f2880ec3 100644
--- a/src/services/codefixes/fixAwaitInSyncFunction.ts
+++ b/src/services/codefixes/fixAwaitInSyncFunction.ts
@@ -53,7 +53,8 @@ namespace ts.codefix {
insertBefore = findChildOfKind(containingFunction, SyntaxKind.FunctionKeyword, sourceFile);
break;
case SyntaxKind.ArrowFunction:
- insertBefore = findChildOfKind(containingFunction, SyntaxKind.OpenParenToken, sourceFile) || first(containingFunction.parameters);
+ const kind = containingFunction.typeParameters ? SyntaxKind.LessThanToken : SyntaxKind.OpenParenToken;
+ insertBefore = findChildOfKind(containingFunction, kind, sourceFile) || first(containingFunction.parameters);
break;
default:
return;
diff --git a/tests/cases/fourslash/codeFixAddMissingAsync3.ts b/tests/cases/fourslash/codeFixAddMissingAsync3.ts
new file mode 100644
index 00000000000..9588556afbe
--- /dev/null
+++ b/tests/cases/fourslash/codeFixAddMissingAsync3.ts
@@ -0,0 +1,16 @@
+///
+
+////const foo = (x: T): string => {
+//// await new Promise(resolve => resolve(true));
+//// return "";
+////}
+
+verify.codeFix({
+ description: ts.Diagnostics.Add_async_modifier_to_containing_function.message,
+ index: 0,
+ newFileContent:
+`const foo = async (x: T): Promise => {
+ await new Promise(resolve => resolve(true));
+ return "";
+}`
+});