Bug 305695 -  Target Platform preference page: Cannot cherry-pick from Running Platform any more
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinition.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinition.java
index 6706515..dca40c2 100755
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinition.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinition.java
@@ -521,7 +521,7 @@
 		List list = (List) bundleMap.get(info.getSymbolicName());
 		if (list != null) {
 			String version = info.getVersion();
-			if (version == null) {
+			if (version == null || version.equals(BundleInfo.EMPTY_VERSION)) {
 				// select newest
 				if (list.size() > 1) {
 					// sort the list
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/provisional/NameVersionDescriptor.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/provisional/NameVersionDescriptor.java
index 6e2c6c8..7020126 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/provisional/NameVersionDescriptor.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/provisional/NameVersionDescriptor.java
@@ -10,6 +10,8 @@
  *******************************************************************************/
 package org.eclipse.pde.internal.core.target.provisional;
 
+import org.eclipse.equinox.frameworkadmin.BundleInfo;
+
 /**
  * Describes something with a name and version.
  */
@@ -24,18 +26,31 @@
 
 	/**
 	 * Constructs a descriptor with a type of 'plugin'
+	 * <p>
+	 * If the passed string version is equal to {@link BundleInfo#EMPTY_VERSION}, 
+	 * the version will be replaced with <code>null</code>.
+	 * </p>
 	 * 
 	 * @param id name identifier
 	 * @param version version identifier, can be <code>null</code>
 	 */
 	public NameVersionDescriptor(String id, String version) {
 		fId = id;
-		fVersion = version;
+		// If an empty version was passed to the constructor, treat it as if null was passed
+		if (version == null || version.equals(BundleInfo.EMPTY_VERSION)) {
+			fVersion = null;
+		} else {
+			fVersion = version;
+		}
 		fType = TYPE_PLUGIN;
 	}
 
 	/**
 	 * Constructs a descriptor of the given type
+	 * <p>
+	 * If the passed string version is equal to {@link BundleInfo#EMPTY_VERSION}, 
+	 * the version will be replaced with <code>null</code>.
+	 * </p>
 	 * 
 	 * @param id name identifier
 	 * @param version version identifier, can be <code>null</code>
@@ -43,7 +58,12 @@
 	 */
 	public NameVersionDescriptor(String id, String version, String type) {
 		fId = id;
-		fVersion = version;
+		// If an empty version was passed to the constructor, treat it as if null was passed
+		if (version == null || version.equals(BundleInfo.EMPTY_VERSION)) {
+			fVersion = null;
+		} else {
+			fVersion = version;
+		}
 		fType = type;
 	}
 
diff --git a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/LocalTargetDefinitionTests.java b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/LocalTargetDefinitionTests.java
index 6e89906..04e03fd 100644
--- a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/LocalTargetDefinitionTests.java
+++ b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/LocalTargetDefinitionTests.java
@@ -183,7 +183,9 @@
 			}
 		}
 		assertNotNull(v1);
+		assertFalse(v1.equals(BundleInfo.EMPTY_VERSION));
 		assertNotNull(v2);
+		assertFalse(v2.equals(BundleInfo.EMPTY_VERSION));
 		
 		NameVersionDescriptor[] restrictions = new NameVersionDescriptor[]{
 				new NameVersionDescriptor("org.eclipse.jdt.launching", v1),
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/shared/target/StyledBundleLabelProvider.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/shared/target/StyledBundleLabelProvider.java
index c2aeeef..c153a46 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/shared/target/StyledBundleLabelProvider.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/shared/target/StyledBundleLabelProvider.java
@@ -167,7 +167,7 @@
 		styledString.append(info.getSymbolicName());
 		if (fShowVersion) {
 			String version = info.getVersion();
-			if (version != null) {
+			if (version != null && !version.equals(BundleInfo.EMPTY_VERSION)) {
 				styledString.append(' ');
 				styledString.append('(', StyledString.QUALIFIER_STYLER);
 				styledString.append(version, StyledString.QUALIFIER_STYLER);