diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/ProvisioningOperationWizard.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/ProvisioningOperationWizard.java
index 7147955..47901c6 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/ProvisioningOperationWizard.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/ProvisioningOperationWizard.java
@@ -204,7 +204,7 @@
 					if (!operation.hasResolved()) {
 						operation.resolveModal(monitor);
 					}
-					if (operation.hasResolved()) {
+					if (operation.getProfileChangeRequest() != null) {
 						this.localJRECheckPlan = ProvUI.toCompabilityWithCurrentJREProvisioningPlan(operation, null);
 						if (!compatibleWithCurrentEE()) {
 							couldNotResolveStatus = localJRECheckPlan.getStatus();
@@ -215,6 +215,10 @@
 				return false;
 			}
 		}
+		if (localJRECheckPlan == null) {
+			return true;
+		}
+
 		IStatus currentEEPlanStatus = localJRECheckPlan.getStatus();
 		if (currentEEPlanStatus.getSeverity() != IStatus.ERROR) {
 			return true;
@@ -337,7 +341,8 @@
 			try {
 				runnableContext.run(true, true, monitor -> {
 					operation.resolveModal(monitor);
-					if (getPolicy().getCheckAgainstCurrentExecutionEnvironment()) {
+					if (operation.getProfileChangeRequest() != null
+							&& getPolicy().getCheckAgainstCurrentExecutionEnvironment()) {
 						this.localJRECheckPlan = ProvUI.toCompabilityWithCurrentJREProvisioningPlan(operation, monitor);
 						if (!compatibleWithCurrentEE()) {
 							couldNotResolveStatus = localJRECheckPlan.getStatus();
