diff --git a/python/src/com/jetbrains/python/validation/CompatibilityVisitor.java b/python/src/com/jetbrains/python/validation/CompatibilityVisitor.java
index 8e4041e46e75..00aa38f6af19 100644
--- a/python/src/com/jetbrains/python/validation/CompatibilityVisitor.java
+++ b/python/src/com/jetbrains/python/validation/CompatibilityVisitor.java
@@ -430,6 +430,17 @@ public abstract class CompatibilityVisitor extends PyAnnotator {
super.visitPyCallExpression(node);
int len = 0;
StringBuilder message = new StringBuilder(myCommonMessage);
+
+ if (myVersionsToProcess.contains(LanguageLevel.PYTHON24) || myVersionsToProcess.contains(LanguageLevel.PYTHON25)) {
+ boolean hasStar = false;
+ for (PyExpression argument : node.getArguments()) {
+ if (hasStar && argument instanceof PyKeywordArgument) {
+ registerProblem(argument, "Python version < 2.6 doesn't support this syntax. Named parameter cannot appear past *arg or **kwarg.");
+ }
+ if (argument instanceof PyStarArgument) hasStar = true;
+ }
+ }
+
for (int i = 0; i != myVersionsToProcess.size(); ++i) {
LanguageLevel languageLevel = myVersionsToProcess.get(i);
if (!languageLevel.isPy3K()) {
diff --git a/python/testData/inspections/PyCompatibilityInspection/callExpression.py b/python/testData/inspections/PyCompatibilityInspection/callExpression.py
index 123087b4b582..c7ada52f8196 100644
--- a/python/testData/inspections/PyCompatibilityInspection/callExpression.py
+++ b/python/testData/inspections/PyCompatibilityInspection/callExpression.py
@@ -6,4 +6,11 @@ class A(B):
reduce()
all()
-buffer()
\ No newline at end of file
+buffer()
+
+def foo(a,b,c):
+ print (a,b,c)
+
+args=['b']
+foo('a', c='c', *args) # OK
+foo('a', *args, c='c') # Not OK
\ No newline at end of file
diff --git a/python/testSrc/com/jetbrains/python/inspections/PyArgumentListInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/PyArgumentListInspectionTest.java
index d500dd0d024c..4050f3139e6f 100644
--- a/python/testSrc/com/jetbrains/python/inspections/PyArgumentListInspectionTest.java
+++ b/python/testSrc/com/jetbrains/python/inspections/PyArgumentListInspectionTest.java
@@ -49,7 +49,13 @@ public class PyArgumentListInspectionTest extends PyTestCase {
}
public void testPy1268() {
- doTest();
+ PythonLanguageLevelPusher.setForcedLanguageLevel(myFixture.getProject(), LanguageLevel.PYTHON30);
+ try {
+ doTest();
+ }
+ finally {
+ PythonLanguageLevelPusher.setForcedLanguageLevel(myFixture.getProject(), null);
+ }
}
public void testInstanceMethodAsLambda() {