diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
index 262504b..b9fafc8 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
@@ -1076,36 +1076,10 @@
 				try {
 					String serverId = launchConfigs[i].getAttribute(SERVER_ID, (String) null);
 					if (getId().equals(serverId)) {
-						final ILaunchConfigurationWorkingCopy wc = launchConfigs[i].getWorkingCopy();
+						ILaunchConfigurationWorkingCopy wc = launchConfigs[i].getWorkingCopy();
 						setupLaunchConfiguration(wc, monitor);
-						if (wc.isDirty()) {
-							class Temp {
-								ILaunchConfiguration lc = null;
-							}
-							final Temp temp = new Temp();
-							class SaveLaunchJob extends Job {
-								public SaveLaunchJob() {
-									super(NLS.bind(Messages.savingTask, wc.getName()));
-								}
-
-								public IStatus run(IProgressMonitor monitor2) {
-									try {
-										temp.lc = wc.doSave();
-									} catch (Exception e) {
-										// ignore
-									}
-									return Status.OK_STATUS;
-								}
-							}
-							SaveLaunchJob job = new SaveLaunchJob();
-							job.schedule();
-							try {
-								job.join();
-							} catch (Exception e) {
-								// ignore
-							}
-							return temp.lc;
-						}
+						if (wc.isDirty())
+							return wc.doSave();
 						return launchConfigs[i];
 					}
 				} catch (CoreException e) {
