diff --git a/bundles/org.eclipse.build.tools/buildTools.jar b/bundles/org.eclipse.build.tools/buildTools.jar
index 5e5ecd7..20ed644 100644
--- a/bundles/org.eclipse.build.tools/buildTools.jar
+++ b/bundles/org.eclipse.build.tools/buildTools.jar
Binary files differ
diff --git a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/GenerateExcludeListTask.java b/bundles/org.eclipse.build.tools/src/org/eclipse/releng/GenerateExcludeListTask.java
index 4cac5ab..fcc5f0f 100644
--- a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/GenerateExcludeListTask.java
+++ b/bundles/org.eclipse.build.tools/src/org/eclipse/releng/GenerateExcludeListTask.java
@@ -93,19 +93,22 @@
 			BufferedReader r = new BufferedReader(new FileReader(mapFile));
 			String line;
 			while ((line = r.readLine()) != null) {
-				int start = line.indexOf("plugin@");
+				int start = line.indexOf("plugin@") + 7;
 				int end = line.indexOf(",");
-				String plugin = "";
-				if ((start > 0) && (end > 0)) {
-					plugin = line.substring(start + 7, end);
-				}
+				String plugin = "";		
+				if ((start > 0) && (end > 0)) {				
+					plugin = line.substring(start, end);
+				}				
 				String version = "";
-				int startv = line.indexOf("version=");
+				int startv = line.indexOf("version=") + 8;
 				int endv = line.indexOf(",", startv);
 				if ((startv > 0) && (endv > 0)) {
-					version = line.substring(startv + 8, endv);
+					version = line.substring(startv, endv);
 				}
-				a.add(plugin + "_" + version + ".jar");
+				if ((version != "") && (plugin != "")) {
+				String l = plugin + "_" + version + ".jar";				
+				a.add(l);			
+				}						
 			}
 			r.close();
 		} catch (IOException e) {
