 		 */
 		public function containsKey(key:IQualifiedKey):Boolean
 		{
-			return getInternalColumn() && _internalColumn.containsKey(key);
+			if (_prevTriggerCounter != triggerCounter)
+				getInternalColumn();
+			return _internalColumn && _internalColumn.containsKey(key);
 		}
 		
 		/**

		 */		
		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 != null)
						(WeaveAPI.SessionManager as SessionManager).unregisterLinkableChild(this, _internalColumn);

					_internalColumn = newColumn;
			
					if (_internalColumn != null)
						registerLinkableChild(this, _internalColumn);
				}
			}
			return _internalColumn;
		}
		

		
		
		
		
		
		
		
		/************************************

		/**
		 * The trigger counter value at the last time the internal column was retrieved.
		 */		
		private var _prevTriggerCounter:uint = 0;
		/**
		 * the internal referenced column
		 */
		private var _internalColumn:IAttributeColumn = null;
		
		private const _columnJuggler:CallbackJuggler = new CallbackJuggler(this, triggerCallbacks, false);
		
		/**
		 * This is the actual IColumnReference object inside dynamicColumnReference.
