*** empty log message ***
diff --git a/update/org.eclipse.update.ui/icons/full/cview16/featuresrc_result.gif b/update/org.eclipse.update.ui/icons/full/cview16/featuresrc_result.gif
new file mode 100644
index 0000000..16973cd
--- /dev/null
+++ b/update/org.eclipse.update.ui/icons/full/cview16/featuresrc_result.gif
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/full/eview16/featuresrc_result.gif b/update/org.eclipse.update.ui/icons/full/eview16/featuresrc_result.gif
new file mode 100644
index 0000000..0f9bedc
--- /dev/null
+++ b/update/org.eclipse.update.ui/icons/full/eview16/featuresrc_result.gif
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/full/obj16/efix_obj.gif b/update/org.eclipse.update.ui/icons/full/obj16/efix_obj.gif
new file mode 100644
index 0000000..6a08981
--- /dev/null
+++ b/update/org.eclipse.update.ui/icons/full/obj16/efix_obj.gif
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/full/ovr16/updated_co.gif b/update/org.eclipse.update.ui/icons/full/ovr16/updated_co.gif
index 06fbc5b..3d0a37f 100644
--- a/update/org.eclipse.update.ui/icons/full/ovr16/updated_co.gif
+++ b/update/org.eclipse.update.ui/icons/full/ovr16/updated_co.gif
Binary files differ
diff --git a/update/org.eclipse.update.ui/plugin.xml b/update/org.eclipse.update.ui/plugin.xml
index a218747..230acbe 100644
--- a/update/org.eclipse.update.ui/plugin.xml
+++ b/update/org.eclipse.update.ui/plugin.xml
@@ -95,7 +95,7 @@
       </view>

       <view

             name="Feature Search Results"

-            icon="icons/full/obj16/psearch_obj.gif"

+            icon="icons/full/cview16/featuresrc_result.gif"

             category="org.eclipse.update.ui"

             class="org.eclipse.update.internal.ui.views.SearchResultView"

             id="org.eclipse.update.ui.SearchResultsView">

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPlugin.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPlugin.java
index 38de7e9..be43d80 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPlugin.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPlugin.java
@@ -254,6 +254,17 @@
 		return (IFeature[]) features.toArray(new IFeature[features.size()]);

 	}

 	

+	public static boolean isPatch(IFeature candidate) {

+		IImport[] imports = candidate.getImports();

+

+		for (int i = 0; i < imports.length; i++) {

+			IImport iimport = imports[i];

+			if (iimport.isPatch())

+				return true;

+		}

+		return false;

+	}

+	

 	public static boolean isPatch(

 		IFeature target,

 		IFeature candidate) {

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPluginImages.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPluginImages.java
index cd1a8d2..6eae3fb 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPluginImages.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPluginImages.java
@@ -64,6 +64,7 @@
 	public static final ImageDescriptor DESC_COMPUTER_OBJ = create(PATH_OBJ, "computer_obj.gif");

 	public static final ImageDescriptor DESC_CONFIG_OBJ = create(PATH_OBJ, "config_obj.gif");

 	public static final ImageDescriptor DESC_FEATURE_OBJ = create(PATH_OBJ, "feature_obj.gif");

+	public static final ImageDescriptor DESC_EFIX_OBJ = create(PATH_OBJ, "efix_obj.gif");

 	public static final ImageDescriptor DESC_FLOPPY_OBJ = create(PATH_OBJ, "floppy_obj.gif");

 	public static final ImageDescriptor DESC_HISTORY_OBJ = create(PATH_OBJ, "history_obj.gif");

 	public static final ImageDescriptor DESC_LSITE_OBJ = create(PATH_OBJ, "lsite_obj.gif");

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationView.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationView.java
index 6ca289d..6090ae5 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationView.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationView.java
@@ -48,7 +48,8 @@
 		"ConfigurationView.missingOptionalStatus";
 	private static final String KEY_MISSING_STATUS =
 		"ConfigurationView.missingStatus";
-	private static final String STATE_SHOW_UNCONF = "ConfigurationView.showUnconf";
+	private static final String STATE_SHOW_UNCONF =
+		"ConfigurationView.showUnconf";
 	private Image eclipseImage;
 	private Image featureImage;
 	private Image updatedFeatureImage;
@@ -58,6 +59,9 @@
 	private Image unconfFeatureImage;
 	private Image errorUnconfFeatureImage;
 	private Image warningUnconfFeatureImage;
+	private Image efixImage;
+	private Image warningEfixImage;
+	private Image errorEfixImage;
 	private Image siteImage;
 	private Image installSiteImage;
 	private Image linkedSiteImage;
@@ -458,13 +462,18 @@
 				IStatus status = localSite.getFeatureStatus(feature);
 				int code = getStatusCode(feature, status);
 				if (configured) {
+					boolean efix = UpdateUIPlugin.isPatch(feature);
 					switch (code) {
 						case IFeature.STATUS_UNHAPPY :
-							return errorFeatureImage;
+							return efix ? errorEfixImage : errorFeatureImage;
 						case IFeature.STATUS_AMBIGUOUS :
-							return warningFeatureImage;
+							return efix
+								? warningEfixImage
+								: warningFeatureImage;
 						default :
-							return updated ? updatedFeatureImage : featureImage;
+							return updated
+								? updatedFeatureImage
+								: (efix ? efixImage : featureImage);
 					}
 				} else {
 					switch (code) {
@@ -548,6 +557,26 @@
 		});
 		warningUnconfFeatureImage = edesc.createImage();
 
+		efixImage = UpdateUIPluginImages.DESC_EFIX_OBJ.createImage();
+		edesc =
+			new OverlayIcon(
+				UpdateUIPluginImages.DESC_EFIX_OBJ,
+				new ImageDescriptor[][] { {
+			}, {
+			}, {
+				UpdateUIPluginImages.DESC_ERROR_CO }
+		});
+		errorEfixImage = edesc.createImage();
+		edesc =
+			new OverlayIcon(
+				UpdateUIPluginImages.DESC_EFIX_OBJ,
+				new ImageDescriptor[][] { {
+			}, {
+			}, {
+				UpdateUIPluginImages.DESC_WARNING_CO }
+		});
+		warningEfixImage = edesc.createImage();
+
 		ImageDescriptor siteDesc = UpdateUIPluginImages.DESC_LSITE_OBJ;
 		siteImage = siteDesc.createImage();
 		ImageDescriptor installSiteDesc = UpdateUIPluginImages.DESC_LSITE_OBJ;
@@ -667,6 +696,9 @@
 		unconfFeatureImage.dispose();
 		errorFeatureImage.dispose();
 		warningFeatureImage.dispose();
+		efixImage.dispose();
+		warningEfixImage.dispose();
+		errorEfixImage.dispose();
 		errorUnconfFeatureImage.dispose();
 		warningUnconfFeatureImage.dispose();
 		siteImage.dispose();
@@ -743,12 +775,15 @@
 
 	protected void makeActions() {
 		super.makeActions();
-		final IDialogSettings settings = UpdateUIPlugin.getDefault().getDialogSettings();
+		final IDialogSettings settings =
+			UpdateUIPlugin.getDefault().getDialogSettings();
 		boolean showUnconfState = settings.getBoolean(STATE_SHOW_UNCONF);
 		showUnconfFeaturesAction = new Action() {
 			public void run() {
 				viewer.refresh(getLocalSite());
-				settings.put(STATE_SHOW_UNCONF, showUnconfFeaturesAction.isChecked());
+				settings.put(
+					STATE_SHOW_UNCONF,
+					showUnconfFeaturesAction.isChecked());
 			}
 		};
 		WorkbenchHelp.setHelp(
@@ -1024,28 +1059,28 @@
 			UpdateUIPlugin.logException(e);
 		}
 	} /**
-																													 * @see IInstallConfigurationChangedListener#installSiteAdded(ISite)
-																													 */
+																														 * @see IInstallConfigurationChangedListener#installSiteAdded(ISite)
+																														 */
 	public void installSiteAdded(IConfiguredSite csite) {
 		asyncRefresh();
 	} /**
-																													 * @see IInstallConfigurationChangedListener#installSiteRemoved(ISite)
-																													 */
+																														 * @see IInstallConfigurationChangedListener#installSiteRemoved(ISite)
+																														 */
 	public void installSiteRemoved(IConfiguredSite site) {
 		asyncRefresh();
 	} /**
-																													 * @see IConfiguredSiteChangedListener#featureInstalled(IFeature)
-																													 */
+																														 * @see IConfiguredSiteChangedListener#featureInstalled(IFeature)
+																														 */
 	public void featureInstalled(IFeature feature) {
 		asyncRefresh();
 	} /**
-																													 * @see IConfiguredSiteChangedListener#featureUninstalled(IFeature)
-																													 */
+																														 * @see IConfiguredSiteChangedListener#featureUninstalled(IFeature)
+																														 */
 	public void featureRemoved(IFeature feature) {
 		asyncRefresh();
 	} /**
-																													 * @see IConfiguredSiteChangedListener#featureUConfigured(IFeature)
-																													 */
+																														 * @see IConfiguredSiteChangedListener#featureUConfigured(IFeature)
+																														 */
 	public void featureConfigured(IFeature feature) {
 	};
 	/**
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UpdatesView.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UpdatesView.java
index 4b9fe11..b194439 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UpdatesView.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UpdatesView.java
@@ -86,6 +86,7 @@
 	private Image siteImage;
 	private Image installSiteImage;
 	private Image featureImage;
+	private Image efixImage;
 	private Image errorFeatureImage;
 	private Image categoryImage;
 	private Image discoveryImage;
@@ -322,14 +323,17 @@
 			if (obj instanceof SearchObject) {
 				return getSearchObjectImage((SearchObject) obj);
 			}
-			if (obj instanceof IFeature)
-				return featureImage;
+			if (obj instanceof IFeature) {
+				boolean efix = UpdateUIPlugin.isPatch((IFeature)obj);
+				return efix?efixImage:featureImage;
+			}
 			if (obj instanceof IFeatureAdapter) {
 				IFeatureAdapter adapter = (IFeatureAdapter) obj;
 				IFeature feature = getFeature(adapter);
 				if (feature instanceof MissingFeature)
 					return errorFeatureImage;
-				return featureImage;
+				boolean efix = UpdateUIPlugin.isPatch(feature);
+				return efix?efixImage:featureImage;
 			}
 			return super.getImage(obj);
 		}
@@ -892,6 +896,7 @@
 		siteImage = UpdateUIPluginImages.DESC_SITE_OBJ.createImage();
 		installSiteImage = UpdateUIPluginImages.DESC_LSITE_OBJ.createImage();
 		featureImage = UpdateUIPluginImages.DESC_FEATURE_OBJ.createImage();
+		efixImage = UpdateUIPluginImages.DESC_EFIX_OBJ.createImage();
 		discoveryImage = UpdateUIPluginImages.DESC_PLACES_OBJ.createImage();
 		bookmarkFolderImage =
 			UpdateUIPluginImages.DESC_BFOLDER_OBJ.createImage();
@@ -912,6 +917,7 @@
 		siteImage.dispose();
 		installSiteImage.dispose();
 		featureImage.dispose();
+		efixImage.dispose();
 		errorFeatureImage.dispose();
 		discoveryImage.dispose();
 		bookmarkFolderImage.dispose();
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LicensePage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LicensePage.java
index a66e69c..0fb0f9b 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LicensePage.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LicensePage.java
@@ -27,6 +27,7 @@
 	private Text text;

 	private Table table;

 	private Image featureImage;

+	private Image efixImage;

 

 	/**

 	 * Constructor for LicensePage

@@ -38,6 +39,7 @@
 		this.multiLicenseMode = multiLicenseMode;

 		if (multiLicenseMode) {

 			featureImage = UpdateUIPluginImages.DESC_FEATURE_OBJ.createImage();

+			efixImage = UpdateUIPluginImages.DESC_EFIX_OBJ.createImage();

 		}

 		setDescription(

 			UpdateUIPlugin.getResourceString(

@@ -46,6 +48,8 @@
 	public void dispose() {

 		if (featureImage != null)

 			featureImage.dispose();

+		if (efixImage !=null)

+			efixImage.dispose();

 		super.dispose();

 	}

 

@@ -139,7 +143,8 @@
 					IFeature feature = jobs[i].getFeature();

 					item = new TableItem(table, SWT.NONE);

 					item.setText(feature.getLabel());

-					item.setImage(featureImage);

+					boolean efix = UpdateUIPlugin.isPatch(feature);

+					item.setImage(efix?efixImage:featureImage);

 					String license = feature.getLicense().getAnnotation();

 					// Question: Can this ever be null? What is the runtime cost?

 					item.setData(license);

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewUpdatesWizardPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewUpdatesWizardPage.java
index 99cd4e4..b65dff7 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewUpdatesWizardPage.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewUpdatesWizardPage.java
@@ -56,6 +56,7 @@
 	private CheckboxTableViewer tableViewer;
 	private IInstallConfiguration config;
 	private Image featureImage;
+	private Image efixImage;
 	private PendingChange[] pendingChanges;
 	private Label counterLabel;
 	private Button filterCheck;
@@ -80,8 +81,16 @@
 		* @see ITableLabelProvider#getColumnImage(Object, int)
 		*/
 		public Image getColumnImage(Object obj, int col) {
-			if (col == 0)
-				return featureImage;
+			if (col == 0) {
+				try {
+					IFeature feature = ((IFeatureAdapter) obj).getFeature();
+					boolean patch = UpdateUIPlugin.isPatch(feature);
+					return patch?efixImage:featureImage;
+				}
+				catch (CoreException e) {
+					return featureImage;
+				}
+			}
 			else
 				return null;
 		}
@@ -171,6 +180,7 @@
 		this.config = config;
 		this.pendingChanges = changes;
 		featureImage = UpdateUIPluginImages.DESC_FEATURE_OBJ.createImage();
+		efixImage = UpdateUIPluginImages.DESC_EFIX_OBJ.createImage();
 		setBannerVisible(false);
 	}
 
@@ -179,6 +189,10 @@
 			featureImage.dispose();
 			featureImage = null;
 		}
+		if (efixImage != null) {
+			efixImage.dispose();
+			efixImage = null;
+		}
 		super.dispose();
 	}