*** empty log message ***
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 9c79101..a74e639 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
@@ -232,12 +232,15 @@
 	}

 	

 	public static IFeature[] getInstalledFeatures(IFeature feature, boolean onlyConfigured) {

+		return getInstalledFeatures(feature.getVersionedIdentifier(), onlyConfigured);

+	}

+	

+	public static IFeature[] getInstalledFeatures(VersionedIdentifier vid, boolean onlyConfigured) {

 		Vector features = new Vector();

 		try {

 			ILocalSite localSite = SiteManager.getLocalSite();

 			IInstallConfiguration config = localSite.getCurrentConfiguration();

 			IConfiguredSite[] isites = config.getConfiguredSites();

-			VersionedIdentifier vid = feature.getVersionedIdentifier();

 			String id = vid.getIdentifier();

 

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

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/search/UpdatesSearchCategory.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/search/UpdatesSearchCategory.java
index 26bc805..cf7084a 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/search/UpdatesSearchCategory.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/search/UpdatesSearchCategory.java
@@ -15,6 +15,7 @@
 import org.eclipse.update.internal.ui.model.*;
 import org.eclipse.update.internal.ui.parts.*;
 import org.eclipse.update.internal.ui.preferences.MainPreferencePage;
+import org.eclipse.update.internal.ui.wizards.FeatureHierarchyElement;
 import org.eclipse.update.ui.forms.internal.FormWidgetFactory;
 
 public class UpdatesSearchCategory extends SearchCategory {
@@ -234,7 +235,7 @@
 						// otherwise it is a broken feature that we 
 						// do not care about.
 						if (ref.isOptional()) {
-							return true;
+							return FeatureHierarchyElement.hasOlderVersion(ref);
 						}
 					}
 				}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/FeatureHierarchyElement.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/FeatureHierarchyElement.java
index 50b255e..15588bd 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/FeatureHierarchyElement.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/FeatureHierarchyElement.java
@@ -328,15 +328,14 @@
 		return null;
 	}
 	
-	private static boolean hasOlderVersion(IFeatureReference newRef) {
+	public static boolean hasOlderVersion(IFeatureReference newRef) {
 		try {
-			IFeature feature = newRef.getFeature();
-			VersionedIdentifier vid = feature.getVersionedIdentifier();
+			VersionedIdentifier vid = newRef.getVersionedIdentifier();
 			PluginVersionIdentifier version = vid.getVersion();
 			String mode = MainPreferencePage.getUpdateVersionsMode();
 
 			IFeature[] allInstalled =
-				UpdateUIPlugin.getInstalledFeatures(feature, false);
+				UpdateUIPlugin.getInstalledFeatures(vid, false);
 			for (int i = 0; i < allInstalled.length; i++) {
 				IFeature candidate = allInstalled[i];
 				PluginVersionIdentifier cversion =