diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterBitFieldVMNode.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterBitFieldVMNode.java
index 1f40f4ac48b..1560871db1b 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterBitFieldVMNode.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterBitFieldVMNode.java
@@ -469,6 +469,16 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
             update.setProperty(IRegisterVMConstants.PROP_CURRENT_MNEMONIC_LONG_NAME, mnemonic.getLongName());
             update.setProperty(IRegisterVMConstants.PROP_CURRENT_MNEMONIC_SHORT_NAME, mnemonic.getShortName());
         }
+        
+        /*
+         * If this node has an expression then it has already been filled in by the higher
+         * level logic. If not then we need to supply something.  In the  previous version
+         * ( pre-property based ) we supplied the name. So we will do that here also.
+         */
+        IExpression expression = (IExpression)DebugPlugin.getAdapter(update.getElement(), IExpression.class);
+        if (expression == null) {
+            update.setProperty(AbstractExpressionVMNode.PROP_ELEMENT_EXPRESSION, data.getName());
+        }
     }
     
     @Override
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterGroupVMNode.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterGroupVMNode.java
index a133172fee4..2f311eebbfc 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterGroupVMNode.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterGroupVMNode.java
@@ -320,7 +320,17 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
     @ConfinedToDsfExecutor("getSession().getExecutor()")
     protected void fillRegisterGroupDataProperties(IPropertiesUpdate update, IRegisterGroupDMData data) {
         update.setProperty(PROP_NAME, data.getName());
-        update.setProperty(PROP_REGISTER_GROUP_DESCRIPTION, data.getName());
+        update.setProperty(PROP_REGISTER_GROUP_DESCRIPTION, data.getDescription());
+        
+        /*
+         * If this node has an expression then it has already been filled in by the higher
+         * level logic. If not then we need to supply something.  In the  previous version
+         * ( pre-property based ) we supplied the name. So we will do that here also.
+         */
+        IExpression expression = (IExpression)DebugPlugin.getAdapter(update.getElement(), IExpression.class);
+        if (expression == null) {
+            update.setProperty(AbstractExpressionVMNode.PROP_ELEMENT_EXPRESSION, data.getName());
+        }
     }
 
     public int getDeltaFlags(Object e) {
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterVMNode.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterVMNode.java
index de32b49e17b..e0669d58287 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterVMNode.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterVMNode.java
@@ -448,6 +448,16 @@ public class RegisterVMNode extends AbstractExpressionVMNode
         update.setProperty(IRegisterVMConstants.PROP_IS_READONCE, data.isReadOnce());
         update.setProperty(IRegisterVMConstants.PROP_IS_WRITEABLE, data.isWriteable());
         update.setProperty(IRegisterVMConstants.PROP_IS_WRITEONCE, data.isWriteOnce());
+        
+        /*
+         * If this node has an expression then it has already been filled in by the higher
+         * level logic. If not then we need to supply something.  In the  previous version
+         * ( pre-property based ) we supplied the name. So we will do that here also.
+         */
+        IExpression expression = (IExpression)DebugPlugin.getAdapter(update.getElement(), IExpression.class);
+        if (expression == null) {
+            update.setProperty(AbstractExpressionVMNode.PROP_ELEMENT_EXPRESSION, data.getName());
+        }
     }
     
     /*
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/VariableVMNode.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/VariableVMNode.java
index 91eb9b5bb71..01836c1db70 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/VariableVMNode.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/VariableVMNode.java
@@ -598,6 +598,16 @@ public class VariableVMNode extends AbstractExpressionVMNode
         if (type != null) {
             update.setProperty(PROP_VARIABLE_BASIC_TYPE, type.name());
         }
+        
+        /*
+         * If this node has an expression then it has already been filled in by the higher
+         * level logic. If not then we need to supply something.  In the  previous version
+         * ( pre-property based ) we supplied the name. So we will do that here also.
+         */
+        IExpression expression = (IExpression)DebugPlugin.getAdapter(update.getElement(), IExpression.class);
+        if (expression == null) {
+            update.setProperty(AbstractExpressionVMNode.PROP_ELEMENT_EXPRESSION, data.getName());
+        }
     }
 
     /**