diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/pom.xml
new file mode 100644
index 00000000000..ceedbcdebed
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/pom.xml
@@ -0,0 +1,104 @@
+
+
+ 4.0.0
+
+ org.jetbrains.kotlin
+ test-sourceRootsRegisteredSeveralTimes
+ 1.0-SNAPSHOT
+
+
+
+ junit
+ junit
+ 4.13.1
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+ ${kotlin.version}
+
+
+
+
+
+
+
+ true
+ 17
+ 17
+ true
+ UTF-8
+
+
+
+
+
+ kotlin-maven-plugin
+ org.jetbrains.kotlin
+ ${kotlin.version}
+
+
+ compile
+
+ compile
+
+
+
+ ${project.basedir}/src/main/kotlin
+ ${project.basedir}/src/main/java
+
+
+
+
+ test-compile
+
+ test-compile
+
+
+
+ ${project.basedir}/src/test/kotlin
+ ${project.basedir}/src/test/java
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.10.1
+
+ ${java.version}
+ ${java.version}
+
+
+
+ default-compile
+ none
+
+
+ default-testCompile
+ none
+
+
+ java-compile
+ compile
+
+ compile
+
+
+
+ java-test-compile
+ test-compile
+
+ testCompile
+
+
+
+
+
+
+
+
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/src/main/java/foo/bar/Foo.java b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/src/main/java/foo/bar/Foo.java
new file mode 100644
index 00000000000..4fa5201b7e1
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/src/main/java/foo/bar/Foo.java
@@ -0,0 +1,4 @@
+package foo.bar;
+
+public class Foo {
+}
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/src/main/java/module-info.java b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/src/main/java/module-info.java
new file mode 100644
index 00000000000..cb68639ee71
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/src/main/java/module-info.java
@@ -0,0 +1,6 @@
+module foo.bar {
+ exports foo.bar;
+
+
+ requires kotlin.stdlib;
+}
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/src/main/kotlin/koo/bar/Koo.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/src/main/kotlin/koo/bar/Koo.kt
new file mode 100644
index 00000000000..9b6f13d88b5
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/src/main/kotlin/koo/bar/Koo.kt
@@ -0,0 +1,4 @@
+package koo.bar
+
+class Koo {
+}
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/verify.bsh b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/verify.bsh
new file mode 100644
index 00000000000..573d8510644
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-sourceRootsRegisteredSeveralTimes/verify.bsh
@@ -0,0 +1,6 @@
+import java.io.*;
+
+File file = new File(basedir, "target/test-sourceRootsRegisteredSeveralTimes-1.0-SNAPSHOT.jar");
+if (!file.exists() || !file.isFile()) {
+ throw new FileNotFoundException("Could not find generated JAR: " + file);
+}
diff --git a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java
index 5ae03c7434e..70eb59469aa 100644
--- a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java
+++ b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java
@@ -41,6 +41,7 @@ import java.lang.reflect.Field;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
import static org.jetbrains.kotlin.maven.Util.joinArrays;
@@ -82,7 +83,7 @@ public abstract class KotlinCompileMojoBase e
List list = new ArrayList<>();
if (sourceDirs != null && !sourceDirs.isEmpty()) list.addAll(sourceDirs);
list.addAll(project.getCompileSourceRoots());
- return list;
+ return list.stream().distinct().collect(Collectors.toList());
}
@NotNull