diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValue.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValue.cs
index 71c8d0daa2..b9538f8c50 100644
--- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValue.cs
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValue.cs
@@ -182,7 +182,7 @@ namespace Debugger
 		
 		ICorDebugValue[] GetArgsForEval(MethodProps method, ValueGetter getter)
 		{
-			ObjectValue updatedVal = (ObjectValue)getter();
+			ObjectValue updatedVal = getter() as ObjectValue;
 			if (this.IsEquivalentValue(updatedVal)) {
 				if (method.IsStatic) {
 					return new ICorDebugValue[] {};
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/Variable.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/Variable.cs
index 76a1428912..3e939682d9 100644
--- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/Variable.cs
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/Variable.cs
@@ -120,6 +120,13 @@ namespace Debugger
 			this.valueGetter = valueGetter;
 			this.subVariables = new VariableCollection(debugger);
 			this.subVariables.Updating += OnSubVariablesUpdating;
+			
+			if (name.StartsWith("<") && name.Contains(">") && name != "<Base class>") {
+				string middle = name.TrimStart('<').Split('>')[0]; // Get text between '<' and '>'
+				if (middle != "") {
+					this.name = middle;
+				}
+			}
 		}
 		
 		void OnSubVariablesUpdating(object sender, VariableCollectionEventArgs e)