diff --git a/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/PlatformConfiguration.java b/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/PlatformConfiguration.java
index f2ce7b6..416393c 100644
--- a/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/PlatformConfiguration.java
+++ b/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/PlatformConfiguration.java
@@ -104,7 +104,7 @@
 	
 	private static final String CFG_VERSION = "version"; //$NON-NLS-1$
 	private static final String CFG_TRANSIENT = "transient"; //$NON-NLS-1$
-	private static final String VERSION = "1.0"; //$NON-NLS-1$
+	private static final String VERSION = "2.1"; //$NON-NLS-1$
 	private static final String EOF = "eof"; //$NON-NLS-1$
 	private static final int CFG_LIST_LENGTH = 10;
 	
@@ -1506,6 +1506,32 @@
 		resetInitializationLocation(initDir);
 	}
 	
+	private void resetUpdateManagerState(URL url) throws IOException {
+		// [20111]
+		if (!supportsDetection(url))
+			return; // can't do ...
+		
+		// find directory where the platform configuration file is	
+		URL resolved = resolvePlatformURL(url);
+		File initCfg = new File(resolved.getFile().replace('/',File.separatorChar));
+		File initDir = initCfg.getParentFile();
+		
+		// Find the Update Manager State directory
+		if (initDir == null || !initDir.exists() || !initDir.isDirectory())
+			return;
+		String temp = initCfg.getName()+".metadata";		
+		File UMDir = new File(initDir,temp+'/');
+	
+		// Attempt to rename it
+		if (UMDir == null || !UMDir.exists() || !UMDir.isDirectory())
+		return;
+		Date now = new Date();
+		boolean renamed = UMDir.renameTo(new File(initDir,temp+now.getTime()+'/'));
+		
+		if (!renamed)
+			resetInitializationLocation(UMDir);
+	}	
+	
 	private void resetInitializationLocation(File dir) {
 		// [20111]
 		if (dir == null || !dir.exists() || !dir.isDirectory())
@@ -1893,7 +1919,10 @@
 		
 		// check version
 		String v = props.getProperty(CFG_VERSION);
-		if (!VERSION.equals(v)) {			
+		if (!VERSION.equals(v)) {	
+			// the state is invalid, delete any files under the directory
+			// bug 33493
+			resetUpdateManagerState(url);	
 			throw new IOException(Policy.bind("cfig.badVersion",v)); //$NON-NLS-1$
 		}
 				
