providerJpmsArguments are already controlled by isMainDescriptor in ProviderInfo
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
index 16e8905..8d4d84c 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
@@ -207,21 +207,21 @@
             }
             else
             {
-                for ( String[] entries : providerJpmsArguments )
-                {
-                    for ( String entry : entries )
-                    {
-                        args.append( entry )
-                            .append( NL );
-                    }
-                }
-
                 args.append( "--add-modules" )
                     .append( NL )
                     .append( moduleName )
                     .append( NL );
             }
 
+            for ( String[] entries : providerJpmsArguments )
+            {
+                for ( String entry : entries )
+                {
+                    args.append( entry )
+                        .append( NL );
+                }
+            }
+
             args.append( startClassName );
 
             String argsFileContent = args.toString();