 		{
 			return dynamicColumnReference.internalObject as IColumnReference;
 		}
+		
+		/**
+		 * @inheritDoc 
+		 */		
+		public function getInternalColumn():IAttributeColumn
+		{
+			if (_dynamicRefTriggerCounter != dynamicColumnReference.triggerCounter)
+			{
+				_dynamicRefTriggerCounter = dynamicColumnReference.triggerCounter;
+				
+				var newColumn:IAttributeColumn = WeaveAPI.AttributeColumnCache.getColumn(internalColumnReference);
+				// do nothing if this is the same column
+				if (_internalColumn != newColumn)
+				{
+					if (_internalColumn)
+						_internalColumn.removeCallback(triggerCallbacks);
 		
-		/**
-		 * This gets called when either the columnReference object changes or the referenced column changes.
-		 * This function will remove a callback from the old column and add a callback to the new one.
-		 */
-		protected function handleReferenceChange():void
-		{
-			var newColumn:IAttributeColumn = WeaveAPI.AttributeColumnCache.getColumn(internalColumnReference);
-			// do nothing if this is the same column
-			if (_internalColumn == newColumn)
-				return;
-			
-			if (_internalColumn != null)
-				(WeaveAPI.SessionManager as SessionManager).unregisterLinkableChild(this, _internalColumn);
-
-			_internalColumn = newColumn;
-			
-			if (_internalColumn != null)
-				registerLinkableChild(this, _internalColumn);
-		}
-		
-		/**
-		 * @return The column referenced by the columnReference object.
-		 */
-		public function getInternalColumn():IAttributeColumn
-		{
+					_internalColumn = newColumn;
+					
+					if (_internalColumn)
+						_internalColumn.addImmediateCallback(this, triggerCallbacks, false, true);
+				}
+			}
 			return _internalColumn;
 		}
-		/**
-		 * the internal referenced column
-		 */
-		protected var _internalColumn:IAttributeColumn = null;
 		
 
 		

		 */
		public function containsKey(key:IQualifiedKey):Boolean
		{
			return _internalColumn && _internalColumn.containsKey(key);
		}
		
		/**

		 */
		public function getValueFromKey(key:IQualifiedKey, dataType:Class = null):*
		{
			if (getInternalColumn())
				return _internalColumn.getValueFromKey(key, dataType);
			return undefined;
		}
