diff --git a/README.md b/README.md
index d6df9ad..ac1b949 100644
--- a/README.md
+++ b/README.md
@@ -514,6 +514,14 @@
 
 `gradlew pullPlugin -PrepoUrl="http://www.example.com/custom-maven" -PrepoUser=myuser -PrepoPassword=mypassword -PdependencyId="org.apache.ofbiz.plugin:myplugin:0.1.0"`
 
+### Pull a source plugin
+
+Download a plugin from source control (currently subversion) and place it in
+the plugins directory. This is mostly useful when working on the trunk branch
+as it requires the latest version of a plugin
+
+`gradlew pullPluginSource -PpluginId=ecommerce`
+
 ### Install a plugin
 
 If you have a plugin called mycustomplugin and want to install it in OFBiz follow the
@@ -525,10 +533,8 @@
 
 `gradlew installPlugin -PpluginId=myplugin`
 
-The above commands achieve the following:
-
-- add the plugin to /plugins/component-load.xml
-- executes the task "install" in the plugin's build.gradle file if it exists
+The above commands executes the task "install" in the plugin's build.gradle
+file if it exists
 
 ### Uninstall a plugin
 
@@ -537,10 +543,8 @@
 
 `gradlew uninstallPlugin -PpluginId=myplugin`
 
-The above commands achieve the following:
-
-- executes the task "uninstall" in the plugin's build.gradle file if it exists
-- removes the plugin from /plugins/component-load.xml
+The above command executes the task "uninstall" in the plugin's build.gradle
+file if it exists
 
 ### Remove a plugin
 
@@ -561,10 +565,7 @@
 
 `gradlew createPlugin -PpluginId=myplugin -PpluginResourceName=MyPlugin -PwebappName=mypluginweb -PbasePermission=MYSECURITY`
 
-The above commands achieve the following:
-
-- create a new plugin in /plugins/myplugin
-- add the plugin to /plugins/component-load.xml
+The above command creates a new plugin in /plugins/myplugin
 
 ### Push a plugin to a repository
 
diff --git a/build.gradle b/build.gradle
index fc2322c..baaf9d9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -16,15 +16,24 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import at.bxm.gradleplugins.svntools.tasks.SvnCheckout
 import org.apache.tools.ant.filters.ReplaceTokens
 
 /* ========================================================
  * Project setup
  * ======================================================== */
-
+buildscript {
+    repositories {
+        jcenter()
+    }
+    dependencies {
+      classpath "at.bxm.gradleplugins:gradle-svntools-plugin:latest.release"
+    }
+}
 apply plugin: 'java'
 apply plugin: 'eclipse'
 apply plugin: 'maven-publish'
+apply plugin: "at.bxm.svntools"
 
 apply from: 'common.gradle'
 
@@ -722,6 +731,20 @@
     }
 }
 
+task pullPluginSource(group: ofbizPlugin, description: 'Download and install a plugin from source control') {
+
+    if (project.hasProperty('pluginId')) {
+        task pullPluginFromSvn(type: SvnCheckout) {
+            svnUrl = "https://svn.apache.org/repos/asf/ofbiz/ofbiz-plugins/${pluginId}"
+            workspaceDir = "${rootDir}/plugins/${pluginId}"
+        }
+        dependsOn pullPluginFromSvn
+    }
+    doLast {
+        installPlugin pluginId
+    }
+}
+
 // ========== Clean up tasks ==========
 task cleanCatalina(group: cleanupGroup, description: 'Clean Catalina data in runtime/catalina/work') {
     doLast { delete "${rootDir}/runtime/catalina/work" }
