diff --git a/org.eclipse.pde.build/src_ant/org/eclipse/pde/internal/build/publisher/BrandP2Task.java b/org.eclipse.pde.build/src_ant/org/eclipse/pde/internal/build/publisher/BrandP2Task.java
index 74332f7..4818d58 100644
--- a/org.eclipse.pde.build/src_ant/org/eclipse/pde/internal/build/publisher/BrandP2Task.java
+++ b/org.eclipse.pde.build/src_ant/org/eclipse/pde/internal/build/publisher/BrandP2Task.java
@@ -45,7 +45,6 @@
 import org.eclipse.equinox.p2.repository.artifact.spi.ArtifactDescriptor;
 import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository;
 import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager;
-import org.eclipse.equinox.spi.p2.publisher.PublisherHelper;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.pde.internal.build.*;
 import org.eclipse.pde.internal.build.tasks.Config;
@@ -69,7 +68,7 @@
 		application = new Repo2Runnable() {
 			@Override
 			protected PhaseSet getPhaseSet() {
-				return new PhaseSet(new Phase[] {new Collect(100), new Install(100)}) { /* nothing to override */};
+				return new PhaseSet(new Phase[] {new Collect(100), new Install(100)});
 			}
 
 			@Override
@@ -217,7 +216,7 @@
 		newIUDescription.setSingleton(originalIU.isSingleton());
 		newIUDescription.setId(id);
 		newIUDescription.setVersion(version);
-		newIUDescription.setCapabilities(new IProvidedCapability[] {PublisherHelper.createSelfCapability(id, version)});
+		newIUDescription.setCapabilities(new IProvidedCapability[] {MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_IU_ID, id, version)});
 		newIUDescription.setTouchpointType(originalIU.getTouchpointType());
 		newIUDescription.setFilter(originalIU.getFilter());
 
@@ -226,7 +225,7 @@
 			newIUDescription.addTouchpointData(element);
 		}
 
-		IArtifactKey key = artifactRepo.createArtifactKey(PublisherHelper.BINARY_ARTIFACT_CLASSIFIER, newIUDescription.getId(), newIUDescription.getVersion());
+		IArtifactKey key = artifactRepo.createArtifactKey("binary", newIUDescription.getId(), newIUDescription.getVersion()); //$NON-NLS-1$
 		newIUDescription.setArtifacts(new IArtifactKey[] {key});
 
 		IInstallableUnit newIU = MetadataFactory.createInstallableUnit(newIUDescription);
