diff --git a/python/src/com/jetbrains/python/inspections/PyStringFormatInspection.java b/python/src/com/jetbrains/python/inspections/PyStringFormatInspection.java
index 1a8488a0146c..98f64e4b6a8d 100644
--- a/python/src/com/jetbrains/python/inspections/PyStringFormatInspection.java
+++ b/python/src/com/jetbrains/python/inspections/PyStringFormatInspection.java
@@ -491,7 +491,9 @@ public class PyStringFormatInspection extends PyInspection {
as(chunks.get(i), PyStringFormatParser.NewStyleSubstitutionChunk.class);
if (chunk != null) {
- chunk.setPosition(i);
+ if (chunk.getPosition() == null) {
+ chunk.setPosition(i);
+ }
String mappingKey = inspectNewStyleChunkAndGetMappingKey(chunk);
if (!isProblem()) {
inspectArguments(chunk, mappingKey);
diff --git a/python/testData/inspections/PyStringFormatInspection/TooFewMappingKeys.py b/python/testData/inspections/PyStringFormatInspection/TooFewMappingKeys.py
new file mode 100644
index 000000000000..273c0acb0f56
--- /dev/null
+++ b/python/testData/inspections/PyStringFormatInspection/TooFewMappingKeys.py
@@ -0,0 +1,2 @@
+'Hello, {1}'.format('World')
+'Hello, {} {}!'.format('World')
\ No newline at end of file
diff --git a/python/testSrc/com/jetbrains/python/inspections/PyStringFormatInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/PyStringFormatInspectionTest.java
index 7fbd033f61ac..6778337d9903 100644
--- a/python/testSrc/com/jetbrains/python/inspections/PyStringFormatInspectionTest.java
+++ b/python/testSrc/com/jetbrains/python/inspections/PyStringFormatInspectionTest.java
@@ -189,6 +189,11 @@ public class PyStringFormatInspectionTest extends PyTestCase {
doTest();
}
+ // PY-8325
+ public void testTooFewMappingKeys() {
+ doTest();
+ }
+
// PY-20599
public void testPy3kAsciiFormatSpecifier() {
runWithLanguageLevel(LanguageLevel.PYTHON35, new Runnable() {