diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
index a8d53b5..40c0ed4 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
@@ -212,6 +212,7 @@
 	private PreviewPatchPage2 previewPatchPage;
 	
 	private HashMap nodesToDiffs;
+	private HashMap contributedActions;
 	
 	public PatcherCompareEditorInput() {
 		super(new CompareConfiguration());
@@ -538,16 +539,14 @@
 	
 	public void contributeDiffViewerToolbarItems(Action[] actions, boolean workspacePatch){
 		ToolBarManager tbm= CompareViewerPane.getToolBarManager(viewer.getControl().getParent());
+		contributedActions = new HashMap();
 		if (tbm != null) {
 			tbm.removeAll();
 			
 			tbm.add(new Separator("contributed")); //$NON-NLS-1$
 			
 			for (int i = 0; i < actions.length; i++) {
-				//If this is a workspace patch, make sure all actions are enabled
-				if (workspacePatch)
-					actions[i].setEnabled(true);
-				
+				contributedActions.put(actions[i].getId(), actions[i]);
 				tbm.appendToGroup("contributed", actions[i]); //$NON-NLS-1$
 			}
 			
@@ -628,4 +627,11 @@
 	public void setPreviewPatchPage(PreviewPatchPage2 page) {
 		previewPatchPage = page;
 	}
+	
+	public void setContributedActionEnablement(String actionID, boolean enabled){
+		Object obj = contributedActions.get(actionID);
+		if (obj != null && obj instanceof Action){
+			((Action) obj).setEnabled(enabled);
+		}
+	}
 }
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java
index c8bc66a..2a5c301 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java
@@ -64,8 +64,13 @@
 	private Text fFuzzField;
 	
 	private Action fRetargetSelection;
+	private static final String retargetID = "PreviewPatchPage_retargetSelection"; //$NON-NLS-1$
+	
 	private Action fIgnoreWhiteSpace;
+	private static final String ignoreWSID = "PreviewPatchPage_ignoreWhiteSpace"; //$NON-NLS-1$
+	
 	private Action fReversePatch;
+	private static final String reversePatchID = "PreviewPatchPage_reversePatch"; //$NON-NLS-1$
 	
 	protected boolean pageRecalculate= true;
 	
@@ -237,6 +242,7 @@
 		};
 		fRetargetSelection.setToolTipText(PatchMessages.PreviewPatchPage2_RetargetTooltip);
 		fRetargetSelection.setEnabled(false);
+		fRetargetSelection.setId(retargetID);
 		
 		fIgnoreWhiteSpace = new Action(PatchMessages.PreviewPatchPage2_IgnoreWSAction, CompareUIPlugin.getImageDescriptor(ICompareUIConstants.IGNORE_WHITESPACE_ENABLED)){
 			public void run(){
@@ -249,6 +255,7 @@
 		fIgnoreWhiteSpace.setChecked(false);
 		fIgnoreWhiteSpace.setToolTipText(PatchMessages.PreviewPatchPage2_IgnoreWSTooltip);
 		fIgnoreWhiteSpace.setDisabledImageDescriptor(CompareUIPlugin.getImageDescriptor(ICompareUIConstants.IGNORE_WHITESPACE_DISABLED));
+		fIgnoreWhiteSpace.setId(ignoreWSID);
 		
 		fReversePatch = new Action(PatchMessages.PreviewPatchPage_ReversePatch_text, CompareUIPlugin.getImageDescriptor(ICompareUIConstants.REVERSE_PATCH_ENABLED)){
 			public void run(){
@@ -260,6 +267,7 @@
 		};
 		fReversePatch.setChecked(false);
 		fReversePatch.setToolTipText(PatchMessages.PreviewPatchPage_ReversePatch_text);
+		fReversePatch.setId(reversePatchID);
 		
 		return new Action[]{fIgnoreWhiteSpace, fRetargetSelection, fReversePatch};
 	}
@@ -287,6 +295,10 @@
 		
 		patcherCompareEditorInput.updateInput(fPatchWizard.getPatcher());
 		
+		if (fPatchWizard.getPatcher().isWorkspacePatch()){
+			patcherCompareEditorInput.setContributedActionEnablement(retargetID, true);
+		}
+		
 	}
 	/*
 	 *	Create the group for setting various patch options
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
index a8d53b5..40c0ed4 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatcherCompareEditorInput.java
@@ -212,6 +212,7 @@
 	private PreviewPatchPage2 previewPatchPage;
 	
 	private HashMap nodesToDiffs;
+	private HashMap contributedActions;
 	
 	public PatcherCompareEditorInput() {
 		super(new CompareConfiguration());
@@ -538,16 +539,14 @@
 	
 	public void contributeDiffViewerToolbarItems(Action[] actions, boolean workspacePatch){
 		ToolBarManager tbm= CompareViewerPane.getToolBarManager(viewer.getControl().getParent());
+		contributedActions = new HashMap();
 		if (tbm != null) {
 			tbm.removeAll();
 			
 			tbm.add(new Separator("contributed")); //$NON-NLS-1$
 			
 			for (int i = 0; i < actions.length; i++) {
-				//If this is a workspace patch, make sure all actions are enabled
-				if (workspacePatch)
-					actions[i].setEnabled(true);
-				
+				contributedActions.put(actions[i].getId(), actions[i]);
 				tbm.appendToGroup("contributed", actions[i]); //$NON-NLS-1$
 			}
 			
@@ -628,4 +627,11 @@
 	public void setPreviewPatchPage(PreviewPatchPage2 page) {
 		previewPatchPage = page;
 	}
+	
+	public void setContributedActionEnablement(String actionID, boolean enabled){
+		Object obj = contributedActions.get(actionID);
+		if (obj != null && obj instanceof Action){
+			((Action) obj).setEnabled(enabled);
+		}
+	}
 }
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java
index c8bc66a..2a5c301 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage2.java
@@ -64,8 +64,13 @@
 	private Text fFuzzField;
 	
 	private Action fRetargetSelection;
+	private static final String retargetID = "PreviewPatchPage_retargetSelection"; //$NON-NLS-1$
+	
 	private Action fIgnoreWhiteSpace;
+	private static final String ignoreWSID = "PreviewPatchPage_ignoreWhiteSpace"; //$NON-NLS-1$
+	
 	private Action fReversePatch;
+	private static final String reversePatchID = "PreviewPatchPage_reversePatch"; //$NON-NLS-1$
 	
 	protected boolean pageRecalculate= true;
 	
@@ -237,6 +242,7 @@
 		};
 		fRetargetSelection.setToolTipText(PatchMessages.PreviewPatchPage2_RetargetTooltip);
 		fRetargetSelection.setEnabled(false);
+		fRetargetSelection.setId(retargetID);
 		
 		fIgnoreWhiteSpace = new Action(PatchMessages.PreviewPatchPage2_IgnoreWSAction, CompareUIPlugin.getImageDescriptor(ICompareUIConstants.IGNORE_WHITESPACE_ENABLED)){
 			public void run(){
@@ -249,6 +255,7 @@
 		fIgnoreWhiteSpace.setChecked(false);
 		fIgnoreWhiteSpace.setToolTipText(PatchMessages.PreviewPatchPage2_IgnoreWSTooltip);
 		fIgnoreWhiteSpace.setDisabledImageDescriptor(CompareUIPlugin.getImageDescriptor(ICompareUIConstants.IGNORE_WHITESPACE_DISABLED));
+		fIgnoreWhiteSpace.setId(ignoreWSID);
 		
 		fReversePatch = new Action(PatchMessages.PreviewPatchPage_ReversePatch_text, CompareUIPlugin.getImageDescriptor(ICompareUIConstants.REVERSE_PATCH_ENABLED)){
 			public void run(){
@@ -260,6 +267,7 @@
 		};
 		fReversePatch.setChecked(false);
 		fReversePatch.setToolTipText(PatchMessages.PreviewPatchPage_ReversePatch_text);
+		fReversePatch.setId(reversePatchID);
 		
 		return new Action[]{fIgnoreWhiteSpace, fRetargetSelection, fReversePatch};
 	}
@@ -287,6 +295,10 @@
 		
 		patcherCompareEditorInput.updateInput(fPatchWizard.getPatcher());
 		
+		if (fPatchWizard.getPatcher().isWorkspacePatch()){
+			patcherCompareEditorInput.setContributedActionEnablement(retargetID, true);
+		}
+		
 	}
 	/*
 	 *	Create the group for setting various patch options
