diff --git a/org.eclipse.virgo.build.p2tools/src/main/java/org/eclipse/virgo/build/p2tools/binaries/VirgoBinariesAction.java b/org.eclipse.virgo.build.p2tools/src/main/java/org/eclipse/virgo/build/p2tools/binaries/VirgoBinariesAction.java
index 00cbff9..b05901d 100644
--- a/org.eclipse.virgo.build.p2tools/src/main/java/org/eclipse/virgo/build/p2tools/binaries/VirgoBinariesAction.java
+++ b/org.eclipse.virgo.build.p2tools/src/main/java/org/eclipse/virgo/build/p2tools/binaries/VirgoBinariesAction.java
@@ -103,7 +103,7 @@
     private void setTouchpointInstructionsToIUDescription(InstallableUnitDescription iuDescription) {
         String chmodTouchpointData = getCHMODConfiguration();
         Map<String, String> touchpointData = new HashMap<String, String>();
-        touchpointData.put("install", "unzip(source:@artifact, target:${installFolder}/);" + chmodTouchpointData);
+        touchpointData.put("install", "unzip(source:@artifact, target:${installFolder}/);" + chmodTouchpointData + "remove(path:${artifact.location});");
         touchpointData.put("uninstall", "cleanupzip(source:@artifact, target:${installFolder}/);");
         iuDescription.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
     }
diff --git a/org.eclipse.virgo.build.p2tools/src/test/java/org/eclipse/virgo/build/p2tools/binaries/BinaryPublisherApplicationTests.java b/org.eclipse.virgo.build.p2tools/src/test/java/org/eclipse/virgo/build/p2tools/binaries/BinaryPublisherApplicationTests.java
index 1677224..0ea0801 100644
--- a/org.eclipse.virgo.build.p2tools/src/test/java/org/eclipse/virgo/build/p2tools/binaries/BinaryPublisherApplicationTests.java
+++ b/org.eclipse.virgo.build.p2tools/src/test/java/org/eclipse/virgo/build/p2tools/binaries/BinaryPublisherApplicationTests.java
@@ -76,7 +76,7 @@
         virgoBinaryAction.perform(new PublisherInfo(), actual, new NullProgressMonitor());
         
         IInstallableUnit iu = actual.getIU("scripts", Version.create("1.0.0"), "root");
-        String installInstructions = "unzip(source:@artifact, target:${installFolder}/);";
+        String installInstructions = "unzip(source:@artifact, target:${installFolder}/);remove(path:${artifact.location});";
         String uninstallInstructions = "cleanupzip(source:@artifact, target:${installFolder}/);";
         validateIU(iu, installInstructions, uninstallInstructions);
         
@@ -109,7 +109,7 @@
         virgoBinaryAction.perform(new PublisherInfo(), actual, new NullProgressMonitor());
         
         IInstallableUnit iu = actual.getIU("scripts", Version.create("1.0.0"), "root");
-        String installInstructions = "unzip(source:@artifact, target:${installFolder}/);chmod(targetDir:${installFolder}\\wronglocation\\,targetFile:file,permissions:600);chmod(targetDir:${installFolder}path,targetFile:file,permissions:permission);";
+        String installInstructions = "unzip(source:@artifact, target:${installFolder}/);chmod(targetDir:${installFolder}\\wronglocation\\,targetFile:file,permissions:600);chmod(targetDir:${installFolder}path,targetFile:file,permissions:permission);remove(path:${artifact.location});";
         String uninstallInstructions = "cleanupzip(source:@artifact, target:${installFolder}/);";
         validateIU(iu, installInstructions, uninstallInstructions);
     }
