diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DebugUIMessages.properties b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DebugUIMessages.properties
index 175e5f1..6c0e61e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DebugUIMessages.properties
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/DebugUIMessages.properties
@@ -63,7 +63,7 @@
 JavaStepFilterPreferencePage_Deselects_all_step_filters_4=Deselects all step filters
 
 JDIDebugUIPlugin__0__contains_obsolete_methods_1={0} contains obsolete methods.
-JDIDebugUIPlugin__0__was_unable_to_replace_the_running_code_with_the_code_in_the_workspace__2={0} was unable to replace the running code with the code in the workspace.
+JDIDebugUIPlugin__0__was_unable_to_replace_the_running_code_with_the_code_in_the_workspace__2=Some code changes cannot be hot swapped into the target virtual machine, such as changing method names or introducing errors into running code.\n\nThe current target virtual machine [{0}] was unable to replace the running code with the code in the workspace.\n\nIt is safe to continue running the application, but you may notice discrepancies when debugging this application.
 JDIDebugUIPlugin_1=Do not show error &when hot code replace fails
 JDIDebugUIPlugin_4=Information
 JDIDebugUIPlugin_2=Do not show error &when obsolete methods remain
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaHotCodeReplaceListener.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaHotCodeReplaceListener.java
index 39c4922..dbe7d4e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaHotCodeReplaceListener.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaHotCodeReplaceListener.java
@@ -56,22 +56,29 @@
 		if (display.isDisposed()) {
 			return;
 		}
-		final String vmName= fLabelProvider.getText(target);
+		
+		String name = null;
+		try {
+			name = target.getName();
+		}
+		catch(DebugException e) {
+			name = fLabelProvider.getText(target);
+		}
+		final String vmName = name;
 		final IStatus status;
 		final String preference;
 		final String alertMessage;
 		if (exception == null) {
-			status= new Status(IStatus.WARNING, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.WARNING, DebugUIMessages.JDIDebugUIPlugin_The_target_VM_does_not_support_hot_code_replace_1, null); 
+			status = new Status(IStatus.WARNING, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.WARNING, DebugUIMessages.JDIDebugUIPlugin_The_target_VM_does_not_support_hot_code_replace_1, null);
 			preference= IJDIPreferencesConstants.PREF_ALERT_HCR_NOT_SUPPORTED;
 			alertMessage= DebugUIMessages.JDIDebugUIPlugin_3; 
 		} else {
-			status= exception.getStatus();
+			status = new Status(IStatus.WARNING, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.WARNING, exception.getMessage(), exception.getCause());
 			preference= IJDIPreferencesConstants.PREF_ALERT_HCR_FAILED;
 			alertMessage= DebugUIMessages.JDIDebugUIPlugin_1; 
 		}
-		final String title= DebugUIMessages.JDIDebugUIPlugin_Hot_code_replace_failed_1; 
-		final String message= MessageFormat.format(DebugUIMessages.JDIDebugUIPlugin__0__was_unable_to_replace_the_running_code_with_the_code_in_the_workspace__2, 
-					new Object[] {vmName});
+		final String title = DebugUIMessages.JDIDebugUIPlugin_Hot_code_replace_failed_1; 
+		final String message = MessageFormat.format(DebugUIMessages.JDIDebugUIPlugin__0__was_unable_to_replace_the_running_code_with_the_code_in_the_workspace__2, new Object[] {vmName});
 		display.asyncExec(new Runnable() {
 			public void run() {
 				if (display.isDisposed()) {
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/JavaHotCodeReplaceManager.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/JavaHotCodeReplaceManager.java
index bdaf114..e0257b0 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/JavaHotCodeReplaceManager.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/JavaHotCodeReplaceManager.java
@@ -11,7 +11,6 @@
 package org.eclipse.jdt.internal.debug.core.hcr;
 
 
-import com.ibm.icu.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -74,6 +73,7 @@
 import org.eclipse.jdt.internal.debug.core.model.JDIStackFrame;
 import org.eclipse.jdt.internal.debug.core.model.JDIThread;
 
+import com.ibm.icu.text.MessageFormat;
 import com.sun.jdi.IncompatibleThreadStateException;
 import com.sun.jdi.ReferenceType;
 import com.sun.jdi.VirtualMachine;
