diff --git a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/ElementDescriptor.java b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/ElementDescriptor.java
index c4fe6f8..db2cfbc 100644
--- a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/ElementDescriptor.java
+++ b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/ElementDescriptor.java
@@ -74,16 +74,20 @@
     String label = element.getAttributes().get(Element.LABEL_ATTRIBUTE);
     if (label == null)
     {
-      label = element.getAttributes().get(Element.NAME_ATTRIBUTE);
+      label = element.getAttributes().get("_label");
       if (label == null)
       {
-        label = element.getAttributes().get(Element.KEY_ATTRIBUTE);
+        label = element.getAttributes().get(Element.NAME_ATTRIBUTE);
         if (label == null)
         {
-          label = element.getAttributes().get(Element.ID_ATTRIBUTE);
+          label = element.getAttributes().get(Element.KEY_ATTRIBUTE);
           if (label == null)
           {
-            return getLabel();
+            label = element.getAttributes().get(Element.ID_ATTRIBUTE);
+            if (label == null)
+            {
+              return getLabel();
+            }
           }
         }
       }
diff --git a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdo/RevisionDescriptor.java b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdo/RevisionDescriptor.java
index cd7d0be..28db9c9 100644
--- a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdo/RevisionDescriptor.java
+++ b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdo/RevisionDescriptor.java
@@ -32,6 +32,7 @@
   protected void doInitElement(Object object, Element element)
   {
     InternalCDORevision revision = (InternalCDORevision)object;
+    element.setAttribute("_label", revision);
     element.setAttribute("_id", revision.getID());
     element.setAttribute("_class", revision.getEClass().getName());
     element.setAttribute("_branch", revision.getBranch());
diff --git a/org.eclipse.emf.cdo.threedee.ui/src/org/eclipse/emf/cdo/threedee/ui/ThreeDeeWorld.java b/org.eclipse.emf.cdo.threedee.ui/src/org/eclipse/emf/cdo/threedee/ui/ThreeDeeWorld.java
index 52c8cf2..4053ce0 100644
--- a/org.eclipse.emf.cdo.threedee.ui/src/org/eclipse/emf/cdo/threedee/ui/ThreeDeeWorld.java
+++ b/org.eclipse.emf.cdo.threedee.ui/src/org/eclipse/emf/cdo/threedee/ui/ThreeDeeWorld.java
@@ -941,10 +941,14 @@
 
           for (Entry<String, String> entry : entries)
           {
-            String label = entry.getKey() + " = " + entry.getValue();
+            String key = entry.getKey();
+            if (!"_label".equals(key))
+            {
+              String label = key + " = " + entry.getValue();
 
-            info = new Info(row++, label, false);
-            infos.add(info);
+              info = new Info(row++, label, false);
+              infos.add(info);
+            }
           }
         }
       }
