diff --git a/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/internal/launching/ext/Q7TargetPlatformManager.java b/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/internal/launching/ext/Q7TargetPlatformManager.java
index f62ebf8..7137df0 100644
--- a/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/internal/launching/ext/Q7TargetPlatformManager.java
+++ b/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/internal/launching/ext/Q7TargetPlatformManager.java
@@ -22,6 +22,7 @@
 import org.eclipse.debug.core.DebugPlugin;
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.debug.core.ILaunchConfigurationListener;
+import org.eclipse.rcptt.internal.core.RcpttPlugin;
 import org.eclipse.rcptt.launching.IQ7Launch;
 import org.eclipse.rcptt.launching.target.ITargetPlatformHelper;
 import org.eclipse.rcptt.launching.target.TargetPlatformManager;
@@ -148,7 +149,15 @@
 	 * @throws CoreException
 	 */
 	public static String getTargetPlatformName(ILaunchConfiguration config) {
-		return getTargetPlatformName(config.getName());
+		String defValue = getTargetPlatformName(config.getName());
+		if (!config.exists())
+			return defValue;
+		try {
+			return config.getAttribute(IQ7Launch.TARGET_PLATFORM, defValue);
+		} catch (CoreException e) {
+			RcpttPlugin.log(e);
+			return defValue;
+		}
 	}
 
 	public static String getTargetPlatformName(String name) {
@@ -163,14 +172,9 @@
 						new ILaunchConfigurationListener() {
 							public void launchConfigurationRemoved(
 									ILaunchConfiguration configuration) {
-								if (configuration.exists()) {
-									String target = getTargetPlatformName(configuration);
-									if (target != null) {
-										TargetPlatformManager
-												.deleteTargetPlatform(target);
-									}
-									cachedHelpers.remove(target);
-								}
+								String target = getTargetPlatformName(configuration);
+								TargetPlatformManager.deleteTargetPlatform(target);
+								cachedHelpers.remove(target);
 							}
 
 							public void launchConfigurationChanged(
diff --git a/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/launching/ext/Q7LaunchingUtil.java b/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/launching/ext/Q7LaunchingUtil.java
index 2517ba4..fdb4e7f 100644
--- a/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/launching/ext/Q7LaunchingUtil.java
+++ b/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/launching/ext/Q7LaunchingUtil.java
@@ -110,6 +110,8 @@
 			Q7TargetPlatformManager.delete(target.getName());
 			Q7TargetPlatformManager.setHelper(target.getName(), target);
 
+			config.setAttribute(IQ7Launch.TARGET_PLATFORM, target.getName());
+
 			String product = target.getDefaultProduct();
 			if (product != null) {
 				config.setAttribute("useProduct", true);
diff --git a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/launching/IQ7Launch.java b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/launching/IQ7Launch.java
index e83edd2..d9f2aff 100644
--- a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/launching/IQ7Launch.java
+++ b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/launching/IQ7Launch.java
@@ -184,6 +184,12 @@
 	String AUT_LOCATION = "aut-location"; //$NON-NLS-1$
 
 	/**
+	 * Launch configuration attribute key. The value is a string specifying
+	 * associated platform.
+	 */
+	String TARGET_PLATFORM = "aut-target-platform"; //$NON-NLS-1$
+
+	/**
 	 * Do not try to create target one more time
 	 */
 	String UPDATE_TARGET_SUPPORTED = "aut-target-updatable";//$NON-NLS-1$
diff --git a/modules/rap/bundles/launching/org.eclipse.rcptt.launching.rap.ui/src/org/eclipse/rcptt/internal/launching/rap/ui/AUTLocationBlock.java b/modules/rap/bundles/launching/org.eclipse.rcptt.launching.rap.ui/src/org/eclipse/rcptt/internal/launching/rap/ui/AUTLocationBlock.java
index 35bd81f..9a6ca74 100644
--- a/modules/rap/bundles/launching/org.eclipse.rcptt.launching.rap.ui/src/org/eclipse/rcptt/internal/launching/rap/ui/AUTLocationBlock.java
+++ b/modules/rap/bundles/launching/org.eclipse.rcptt.launching.rap.ui/src/org/eclipse/rcptt/internal/launching/rap/ui/AUTLocationBlock.java
@@ -189,6 +189,7 @@
 			info.setTargetName(Q7TargetPlatformManager
 					.getTargetPlatformName(config));
 			info.save();
+			config.setAttribute(IQ7Launch.TARGET_PLATFORM, info.getName());
 			Q7TargetPlatformManager.setHelper(info.getName(), info);
 		}
 		config.setAttribute(IQ7Launch.UPDATE_TARGET_SUPPORTED, true);
diff --git a/rcp/org.eclipse.rcptt.launching.ext.ui/src/org/eclipse/rcptt/internal/launching/ext/ui/AUTLocationBlock.java b/rcp/org.eclipse.rcptt.launching.ext.ui/src/org/eclipse/rcptt/internal/launching/ext/ui/AUTLocationBlock.java
index 6497d85..b70371f 100644
--- a/rcp/org.eclipse.rcptt.launching.ext.ui/src/org/eclipse/rcptt/internal/launching/ext/ui/AUTLocationBlock.java
+++ b/rcp/org.eclipse.rcptt.launching.ext.ui/src/org/eclipse/rcptt/internal/launching/ext/ui/AUTLocationBlock.java
@@ -188,6 +188,7 @@
 			info.setTargetName(Q7TargetPlatformManager
 					.getTargetPlatformName(config));
 			info.save();
+			config.setAttribute(IQ7Launch.TARGET_PLATFORM, info.getName());
 			Q7TargetPlatformManager.setHelper(info.getName(), info);
 		}
 		config.setAttribute(IQ7Launch.UPDATE_TARGET_SUPPORTED, true);
