diff --git a/ant/src/main/java/org/apache/commons/weaver/ant/WeaverSettings.java b/ant/src/main/java/org/apache/commons/weaver/ant/WeaverSettings.java
index dd3104b..7692fda 100644
--- a/ant/src/main/java/org/apache/commons/weaver/ant/WeaverSettings.java
+++ b/ant/src/main/java/org/apache/commons/weaver/ant/WeaverSettings.java
@@ -40,6 +40,7 @@
  * <li>{@code target} attribute - {@link File}</li>
  * <li>{@code classpath} attribute - {@link Path} (incompatible with {@code classpathref})</li>
  * <li>{@code classpathref} attribute - {@link String} (incompatible with {@code classpath})</li>
+ * <li>{@code includeSystemClasspath} attribute - {@code boolean}</li>
  * <li>nested {@code propertyset} - {@link PropertySet}</li>
  * <li>nested {@code properties} - {@link InlineProperties}</li>
  * </ul>
@@ -51,6 +52,7 @@
     private String classpathref;
     private PropertySet propertySet;
     private InlineProperties inlineProperties;
+    private boolean includeSystemClasspath;
 
     /**
      * Create a new {@link WeaverSettings} object.
@@ -106,8 +108,8 @@
     }
 
     /**
-     * Return the effective classpath (system classpath + configured classpath) as a {@link List} of {@link String}
-     * filesystem paths.
+     * Return the effective classpath as a {@link List} of {@link String}
+     * filesystem paths. If {@link #includeSystemClasspath}, system classpath will be appended.
      * @return List<String>
      */
     public List<String> getClasspathEntries() {
@@ -116,7 +118,9 @@
         if (classpath != null) {
             path.add(classpath);
         }
-        path.add(Path.systemClasspath);
+        if (includeSystemClasspath) {
+            path.add(Path.systemClasspath);
+        }
 
         return Arrays.asList(path.list());
     }
@@ -187,6 +191,16 @@
     }
 
     /**
+     * Set whether to include the system classpath.
+     * @param includeSystemClasspath the includeSystemClasspath to set
+     * @since 1.3
+     * @see Path#systemClasspath
+     */
+    public void setIncludeSystemClasspath(boolean includeSystemClasspath) {
+        this.includeSystemClasspath = includeSystemClasspath;
+    }
+
+    /**
      * Merge nested {@code propertyset} and {@code properties}; latter takes precedence.
      * @return Properties
      */
diff --git a/ant/src/site/markdown/index.md b/ant/src/site/markdown/index.md
index f30bf43..94dfd53 100644
--- a/ant/src/site/markdown/index.md
+++ b/ant/src/site/markdown/index.md
@@ -41,6 +41,7 @@
  * `classpath` attribute - path string (incompatible with `classpathref`)
  * `classpathref` attribute - refid of an Ant **path**
  (incompatible with `classpath`)
+ * `includesystemclasspath` - specifies whether to include the system classpath
  * nested `propertyset` - Ant **PropertySet**
  * nested `properties` - specifies properties using the names and text values
  of nested elements (looks like Maven POM properties)
