diff --git a/royale-maven-plugin/src/main/java/org/apache/royale/maven/CompilePlayerglobalMojo.java b/royale-maven-plugin/src/main/java/org/apache/royale/maven/CompilePlayerglobalMojo.java
index bbf13b7..237912a 100644
--- a/royale-maven-plugin/src/main/java/org/apache/royale/maven/CompilePlayerglobalMojo.java
+++ b/royale-maven-plugin/src/main/java/org/apache/royale/maven/CompilePlayerglobalMojo.java
@@ -38,8 +38,8 @@
 public class CompilePlayerglobalMojo
     extends BaseMojo
 {
-    @Parameter(defaultValue = "src/main/asdoc")
-    private String asdocDirectoryName;
+    @Parameter(defaultValue = "src/main/playerglobal")
+    private String playerglobalSourceDirectory;
 
     @Parameter(defaultValue = "${project.artifactId}-${project.version}.swc")
     protected String outputFileName;
@@ -47,6 +47,9 @@
     @Parameter(defaultValue = "false")
     private boolean skipPlayerglobal;
 
+    @Parameter(defaultValue = "false")
+    private boolean playerglobalAir;
+
     @Component
     private MavenProjectHelper projectHelper;
 
@@ -81,7 +84,7 @@
         if(skipPlayerglobal) {
             return true;
         }
-        File inputFolder = new File(asdocDirectoryName);
+        File inputFolder = new File(project.getBasedir(), playerglobalSourceDirectory);
         return !inputFolder.exists() || !inputFolder.isDirectory();
     }
 
diff --git a/royale-maven-plugin/src/main/java/org/apache/royale/maven/GeneratePlayerglobalMojo.java b/royale-maven-plugin/src/main/java/org/apache/royale/maven/GeneratePlayerglobalMojo.java
index 23fd6f2..876c7d0 100644
--- a/royale-maven-plugin/src/main/java/org/apache/royale/maven/GeneratePlayerglobalMojo.java
+++ b/royale-maven-plugin/src/main/java/org/apache/royale/maven/GeneratePlayerglobalMojo.java
@@ -35,8 +35,8 @@
 public class GeneratePlayerglobalMojo
         extends BaseMojo
 {
-    @Parameter(defaultValue = "src/main/asdoc")
-    private String asdocDirectoryName;
+    @Parameter(defaultValue = "src/main/playerglobal")
+    private String playerglobalSourceDirectory;
 
     @Parameter(defaultValue = "generated-sources/playerglobal")
     private String outputDirectoryName;
@@ -44,6 +44,9 @@
     @Parameter(defaultValue = "false")
     private boolean skipPlayerglobal;
 
+    @Parameter(defaultValue = "false")
+    private boolean playerglobalAir;
+
     @Override
     protected String getToolGroupName() {
         return "Royale";
@@ -67,7 +70,8 @@
     @Override
     protected VelocityContext getVelocityContext() throws MojoExecutionException {
         VelocityContext context = super.getVelocityContext();
-        context.put("asdocRoot", new File(asdocDirectoryName));
+        context.put("asdocRoot", new File(project.getBasedir(), playerglobalSourceDirectory));
+        context.put("air", playerglobalAir);
         return context;
     }
 
@@ -76,7 +80,7 @@
         if(skipPlayerglobal) {
             return true;
         }
-        File inputFolder = new File(asdocDirectoryName);
+        File inputFolder = new File(project.getBasedir(), playerglobalSourceDirectory);
         return !inputFolder.exists() || !inputFolder.isDirectory();
     }
 
diff --git a/royale-maven-plugin/src/main/resources/config/generate-playerglobal-config.xml b/royale-maven-plugin/src/main/resources/config/generate-playerglobal-config.xml
index b8b00e5..6bd34d2 100644
--- a/royale-maven-plugin/src/main/resources/config/generate-playerglobal-config.xml
+++ b/royale-maven-plugin/src/main/resources/config/generate-playerglobal-config.xml
@@ -19,4 +19,5 @@
 <royale-config>
     <as-root>${output.path}</as-root>
     <asdoc-root>${asdocRoot.path}</asdoc-root>
+    <air>${air}</air>
 </royale-config>
