diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/pack200/Pack200ProcessorStep.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/pack200/Pack200ProcessorStep.java
index 3a1c0d6..7eb0717 100644
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/pack200/Pack200ProcessorStep.java
+++ b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/pack200/Pack200ProcessorStep.java
@@ -47,7 +47,7 @@
 	@Override
 	public void initialize(IProvisioningAgent agent, IProcessingStepDescriptor descriptor, IArtifactDescriptor context) {
 		super.initialize(agent, descriptor, context);
-		if (!isEnabled()) {
+		if (!UnpackStep.canUnpack()) {
 			IStatus status = null;
 			if (detailedResult) {
 				status = new Status(IStatus.ERROR, Activator.ID, MirrorRequest.ARTIFACT_PROCESSING_ERROR, "Unpack facility not configured.", null); //$NON-NLS-1$
@@ -103,9 +103,4 @@
 		new JarProcessorExecutor().runJarProcessor(options);
 		return new File(getWorkDir(), incoming.getName().substring(0, incoming.getName().length() - PACKED_SUFFIX.length()));
 	}
-
-	@Override
-	public boolean isEnabled() {
-		return UnpackStep.canUnpack();
-	}
 }
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStep.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStep.java
index 22e407b..734a548 100644
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStep.java
+++ b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStep.java
@@ -133,8 +133,4 @@
 	public IStatus getStatus(boolean deep) {
 		return ProcessingStepHandler.getStatus(this, deep);
 	}
-
-	public boolean isEnabled() {
-		return true;
-	}
 }
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStepHandler.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStepHandler.java
index cee0631..25a099e 100644
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStepHandler.java
+++ b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStepHandler.java
@@ -48,19 +48,9 @@
 		if (point == null)
 			return false;
 		IProcessingStepDescriptor[] steps = descriptor.getProcessingSteps();
-		for (IProcessingStepDescriptor stepDescriptor : steps) {
-			String processorId = stepDescriptor.getProcessorId();
-			IExtension extension = point.getExtension(processorId);
-			if (extension == null)
+		for (int i = 0; i < steps.length; i++) {
+			if (point.getExtension(steps[i].getProcessorId()) == null)
 				return false;
-
-			IConfigurationElement[] config = extension.getConfigurationElements();
-			try {
-				Object object = config[0].createExecutableExtension("class"); //$NON-NLS-1$
-				return ((ProcessingStep) object).isEnabled();
-			} catch (CoreException e) {
-				// noop
-			}
 		}
 		return true;
 	}
