diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationTabGroupViewer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationTabGroupViewer.java
index 3c8104b..4a2c500 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationTabGroupViewer.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationTabGroupViewer.java
@@ -47,6 +47,7 @@
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.ErrorDialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.resource.ColorRegistry;
 import org.eclipse.jface.resource.JFaceResources;
@@ -1554,9 +1555,48 @@
 	 * Dialog to Show the Command line
 	 */
 	protected void handleShowCommandLinePressed() {
-		ShowCommandLineDialog dialog = new ShowCommandLineDialog(getShell(), getLaunchConfigurationDialog().getMode(),
-				fOriginal);
-		dialog.open();
+		boolean showCommandLineDialog = true;
+		if (isDirty()) {
+			int returnVal = showSaveChangesDialog();
+			if (returnVal == IDialogConstants.YES_ID) {
+				handleApplyPressed();
+			} else if (returnVal == IDialogConstants.NO_ID) {
+				handleRevertPressed();
+			} else {
+				showCommandLineDialog = false;
+			}
+		}
+		if (showCommandLineDialog) {
+			ShowCommandLineDialog dialog = new ShowCommandLineDialog(getShell(),
+					getLaunchConfigurationDialog().getMode(),
+					fWorkingCopy);
+			dialog.open();
+		}
+	}
+
+	private int showSaveChangesDialog() {
+		String message = MessageFormat.format(
+				LaunchConfigurationsMessages.LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Question,
+				new Object[] { getWorkingCopy().getName() });
+		MessageDialog dialog = new MessageDialog(getShell(),
+				LaunchConfigurationsMessages.LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Title, null,
+				message,
+				MessageDialog.QUESTION,
+				new String[] {
+						LaunchConfigurationsMessages.LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Apply,
+						LaunchConfigurationsMessages.LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Revert,
+						LaunchConfigurationsMessages.LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Cancel },
+				0);
+		int ret = dialog.open();
+		int val = IDialogConstants.CANCEL_ID;
+		if (ret == 0 || ret == 1) {
+			if (ret == 0) {
+				val = IDialogConstants.YES_ID;
+			} else {
+				val = IDialogConstants.NO_ID;
+			}
+		}
+		return val;
 	}
 
 	/**
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.java
index edaf3c9..cdab75d 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.java
@@ -107,7 +107,13 @@
 	public static String LaunchConfigurationDialog_ShowCommandLine;
 	public static String LaunchConfigurationDialog_ShowCommandLine_Title;
 	public static String LaunchConfigurationDialog_ShowCommandLine_Copy;
+	public static String LaunchConfigurationDialog_ShowCommandLine_Close;
 	public static String LaunchConfigurationDialog_ShowCommandLine_Default;
+	public static String LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Title;
+	public static String LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Question;
+	public static String LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Apply;
+	public static String LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Revert;
+	public static String LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Cancel;
 	public static String LaunchConfigurationSelectionDialog_0;
 	public static String LaunchConfigurationSelectionDialog_1;
 	public static String LaunchConfigurationSelectionDialog_deleteButtonLabel;
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.properties b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.properties
index 2fd2bd8..4315df2 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.properties
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.properties
@@ -118,7 +118,13 @@
 LaunchConfigurationDialog_ShowCommandLine=Sho&w Command Line
 LaunchConfigurationDialog_ShowCommandLine_Title=Command Line
 LaunchConfigurationDialog_ShowCommandLine_Copy=C&opy && Close
+LaunchConfigurationDialog_ShowCommandLine_Close=&Close
 LaunchConfigurationDialog_ShowCommandLine_Default=Command Line could not be retrieved.
+LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Title=Apply Changes
+LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Question=The configuration "{0}" has unsaved changes.  Do you wish to apply the changes before showing command line?
+LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Apply=&Apply
+LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Revert=&Revert
+LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Cancel=&Close
 LaunchConfigurationsDialog_0=New launch configuration
 LaunchConfigurationsDialog_1=Delete selected launch configuration(s)
 LaunchConfigurationsDialog_2=New launch configuration prototype
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/ShowCommandLineDialog.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/ShowCommandLineDialog.java
index 6a4f541..542eae5 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/ShowCommandLineDialog.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/ShowCommandLineDialog.java
@@ -73,7 +73,8 @@
 	protected void createButtonsForButtonBar(Composite parent) {
 		createButton(parent, IDialogConstants.OK_ID,
 				LaunchConfigurationsMessages.LaunchConfigurationDialog_ShowCommandLine_Copy, true);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
+		createButton(parent, IDialogConstants.CANCEL_ID,
+				LaunchConfigurationsMessages.LaunchConfigurationDialog_ShowCommandLine_Close, false);
 	}
 
 	private LaunchManager getLaunchManager() {
