diff --git a/org.eclipse.wtp.releng.versionchecker/META-INF/MANIFEST.MF b/org.eclipse.wtp.releng.versionchecker/META-INF/MANIFEST.MF
index 83b71ca593d520a6458f5cc0721bc9729c49db71..24789727bb987b0f343d1e672f82aa3ea090ce22 100644
--- a/org.eclipse.wtp.releng.versionchecker/META-INF/MANIFEST.MF
+++ b/org.eclipse.wtp.releng.versionchecker/META-INF/MANIFEST.MF
@@ -6,7 +6,6 @@ Bundle-Version: 1.0.0.qualifier
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.update.configurator
-Eclipse-LazyStart: true
 Export-Package: org.eclipse.wtp.releng.tools.versionchecker
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/org.eclipse.wtp.releng.versionchecker/plugin.xml b/org.eclipse.wtp.releng.versionchecker/plugin.xml
index 0ee0995b7cd2555295a539b9d7fc3f84f2633bba..f175c70ab5e998fd498395c6827348ee86ba4bac 100644
--- a/org.eclipse.wtp.releng.versionchecker/plugin.xml
+++ b/org.eclipse.wtp.releng.versionchecker/plugin.xml
@@ -6,7 +6,7 @@
          name="%extension.name.0"
          point="org.eclipse.core.runtime.applications">
       <application>
-         <run class="org.eclipse.wtp.releng.versionchecker.DependencyChecker"/>
+         <run class="org.eclipse.wtp.releng.tools.versionchecker.DependencyChecker"/>
       </application>
    </extension>
    <extension
@@ -14,7 +14,7 @@
          name="%extension.name.1"
          point="org.eclipse.core.runtime.applications">
       <application>
-         <run class="org.eclipse.wtp.releng.versionchecker.VersionLister"/>
+         <run class="org.eclipse.wtp.releng.tools.versionchecker.VersionLister"/>
       </application>
    </extension>
 
diff --git a/org.eclipse.wtp.releng.versionchecker/src/org/eclipse/wtp/releng/tools/versionchecker/VersionLister.java b/org.eclipse.wtp.releng.versionchecker/src/org/eclipse/wtp/releng/tools/versionchecker/VersionLister.java
index 617bba8907d41a7d1b200a656d1953e3108d1994..8dfc8cac7040b81fae3141fa6eb352e4dd227f8a 100644
--- a/org.eclipse.wtp.releng.versionchecker/src/org/eclipse/wtp/releng/tools/versionchecker/VersionLister.java
+++ b/org.eclipse.wtp.releng.versionchecker/src/org/eclipse/wtp/releng/tools/versionchecker/VersionLister.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -85,7 +85,7 @@ public class VersionLister implements IPlatformRunnable {
 
 	private static final String FEATURE_DATA = "featureData";
 
-	private static final int ERROR_BASE_CODE = 90000;
+	private static final int ERROR_BASE_CODE = 0x10000000;
 	private static final int ERROR_BUNDLE_DECREASE = 0x0001;
 	private static final int ERROR_FEATURE_DECREASE = 0x0010;
 	private static final int ERROR_EXCEPTION_OCCURRED = 0x0100;
@@ -184,7 +184,8 @@ public class VersionLister implements IPlatformRunnable {
 						}
 						someCommandExecuted = true;
 						exitResult = exitResult | doTestToReference(referenceId, referenceFilename, buildLabel);
-
+						System.out.println("exitResult: " + exitResult);
+						
 						// minor error in arguments
 						if (!someCommandExecuted) {
 							exitResult = exitResult | doPrintHelp();
@@ -255,7 +256,9 @@ public class VersionLister implements IPlatformRunnable {
 				currMap = makeFeatureMap();
 				checkingType = "feature";
 				int feature_return = _compareReferenceAndCurrent(currMap, refMap, checkingType, ERROR_FEATURE_DECREASE, reportWriter);
+				System.out.println("feature_return: " + feature_return);
 				exit_code = exit_code | feature_return;
+				System.out.println("exit_code: " + exit_code);
 
 				reportWriter.write("</versioningReportData>" + EOL);
 				reportWriter.write("</versioningReport>" + EOL);
@@ -272,20 +275,20 @@ public class VersionLister implements IPlatformRunnable {
 		}
 		catch (ParserConfigurationException e) {
 			e.printStackTrace();
-			exit_code = exit_code & ERROR_EXCEPTION_OCCURRED;
+			exit_code = exit_code | ERROR_EXCEPTION_OCCURRED;
 		}
 		catch (FileNotFoundException e) {
 			e.printStackTrace();
-			exit_code = exit_code & ERROR_EXCEPTION_OCCURRED;
+			exit_code = exit_code | ERROR_EXCEPTION_OCCURRED;
 		}
 		catch (SAXException e) {
 			e.printStackTrace();
-			exit_code = exit_code & ERROR_EXCEPTION_OCCURRED;
+			exit_code = exit_code | ERROR_EXCEPTION_OCCURRED;
 		}
 
 		catch (IOException e) {
 			e.printStackTrace();
-			exit_code = exit_code & ERROR_EXCEPTION_OCCURRED;
+			exit_code = exit_code | ERROR_EXCEPTION_OCCURRED;
 		}
 
 		return exit_code;
@@ -391,7 +394,7 @@ public class VersionLister implements IPlatformRunnable {
 			int qualifierCount = 0;
 			qualifierCount = checkDifference(refMap, currMap, currentIterator2c, QUALIFIER, checkingType, reportWriter);
 			if (qualifierCount > 0 && countQaulifierOnlyAsError()) {
-				result = result + ERROR_QUALIFIER_ONLY_INCREAASE;
+				result = ERROR_QUALIFIER_ONLY_INCREAASE;
 			}
 		}
 
@@ -424,7 +427,8 @@ public class VersionLister implements IPlatformRunnable {
 			if ("true".equals(property)) {
 				result = true;
 			}
-		} else {
+		}
+		else {
 			result = countQualifierOnlyAsError;
 		}
 		return result;
@@ -437,10 +441,17 @@ public class VersionLister implements IPlatformRunnable {
 	private boolean isInteresting(String key) {
 		boolean result = false;
 
-		for (int i = 0; i < interestingPatterns.length; i++) {
-			if (key.startsWith(interestingPatterns[i])) {
-				result = true;
-				break;
+		// .source files are completely coupled with their code bundles, 
+		// so no need to deal with them as their own entities. 
+		if (key.endsWith(".source")) {
+			result = false;
+		}
+		else {
+			for (int i = 0; i < interestingPatterns.length; i++) {
+				if (key.startsWith(interestingPatterns[i])) {
+					result = true;
+					break;
+				}
 			}
 		}
 		return result;
@@ -481,13 +492,12 @@ public class VersionLister implements IPlatformRunnable {
 						}
 					}
 					else if (fieldToCheck == QUALIFIER) {
+						// System.out.println("curVersion: " +
+						// curVersion.getQualifier());
 						// skip test if doing "HEAD Build"
-						System.out.println("curVersion: " + curVersion.getQualifier());
-						if (!curVersion.getQualifier().equals("HEAD")) {
-							if (refVersion.compareTo(curVersion) < 0) {
-								result++;
-								_printIncrease(key, refVersion, curVersion, "qualifier", checkingType, reportWriter);
-							}
+						if (!(curVersion.getQualifier().equals("HEAD"))) {
+							result = 1;
+							_printIncrease(key, refVersion, curVersion, "qualifier", checkingType, reportWriter);
 						}
 						else {
 							System.out.println("curVersion qualifier was HEAD");
@@ -815,7 +825,7 @@ public class VersionLister implements IPlatformRunnable {
 		for (int i = 0; i < bundles.length; i++) {
 			String bundleName = bundles[i].getName();
 			Version bundleVersion = bundles[i].getVersion();
-			System.out.println(bundleName + "\t\t\t" + bundleVersion);
+			// System.out.println(bundleName + "\t\t\t" + bundleVersion);
 			bundleName = bundleName.trim();
 			if (!contains(bundleName, alwaysExclude)) {
 				// in case it already contains one, we need to make sure we
diff --git a/org.eclipse.wtp.releng.versionchecker/src/org/eclipse/wtp/releng/tools/versionchecker/checkVersion.jpage b/org.eclipse.wtp.releng.versionchecker/src/org/eclipse/wtp/releng/tools/versionchecker/checkVersion.jpage
new file mode 100644
index 0000000000000000000000000000000000000000..ba18807df710287bd6dabef78b89f9c9da1c64d8
--- /dev/null
+++ b/org.eclipse.wtp.releng.versionchecker/src/org/eclipse/wtp/releng/tools/versionchecker/checkVersion.jpage
@@ -0,0 +1,29 @@
+
+new org.osgi.framework.Version(
+
+			
+3.0.1.v200807220139-6-384D4DyC5IS1jDdUMdDnqCiDoP (current) 
+3.0.1.v200807220139-6-184D4DxC3JO2d8kHfcLkGN2QY9 (reference)
+
+
+"v200807220139-6-384D4DyC5IS1jDdUMdDnqCiDoP".compareTo("v200807220139-6-184D4DxC3JO2d8kHfcLkGN2QY9")
+
+
+"v200807220139-6-3".compareTo("v200807220139-6-1")
+
+
+0x00001 | 0x01000
+
+90000 | 4096 
+
+new Integer(90000).bitCount()
+
+Integer.toBinaryString(90000)
+
+(java.lang.String) 10101111110010000
+Integer.toBinaryString(4096)
+(java.lang.String) 00001000000000000
+
+0x10000000 | 4096
+
+| 4096
\ No newline at end of file