 		
 		for each (var info:EntityHierarchyInfo in event.result)
 		{
-			var node:EntityNode = new EntityNode(source.entityCache);
+			var node:EntityNode = new GeomColumnNode(source.entityCache);
 			node.id = info.id;
 			children.push(node);
 		}
 		getCallbackCollection(source).triggerCallbacks();
 	}
+}
+
+internal class GeomColumnNode extends EntityNode
+{
+	public function GeomColumnNode(cache:EntityCache)
+	{
+		super(cache);
+	}
+	
+	override public function getLabel():String
+	{
+		var title:String = super.getLabel();
+		var cache:EntityCache = getEntityCache();
+		var entity:Entity = getEntity();
+		for each (var parentId:int in entity.parentIds)
+		{
+			var info:EntityHierarchyInfo = cache.getBranchInfo(parentId);
+			if (info && info.title && info.title != title)
+				return title + " (" + info.title + ")";
+		}
+		return title;
+	}
 }
	{
		this.source = source;
	}
	public function getSource():Object { return source; }
	public function equals(other:IWeaveTreeNode):Boolean { return other == this; }
	public function getLabel():String
	{

import weave.api.data.EntityType;
import weave.api.data.IWeaveTreeNode;
import weave.api.getCallbackCollection;
import weave.api.services.beans.Entity;
import weave.api.services.beans.EntityHierarchyInfo;
import weave.data.AttributeColumns.ProxyColumn;
import weave.data.DataSources.WeaveDataSource;
