 			}
 			
 			triggerCallbacks();
+		}
+		
+		private function includeColumnsOnly(obj:*, i:*, a:*):Boolean
+		{
+			return obj is IAttributeColumn;
 		}
 		
 		/**

			if (StandardLib.arrayCompare(_setColumnKeySources_arguments, arguments) == 0)
				return;
			
			// unlink from the old key set
			if (_generatedKeySets)
			{
				for each (var keySet:IKeySet in _generatedKeySets)
					disposeObject(keySet);
				_generatedKeySets = null;
			}

			{
				// KeySetUnion should not trigger callbacks
				var union:KeySetUnion = registerDisposableChild(this, new KeySetUnion(keyInclusionLogic));
				for each (keySet in sortColumns)
					union.addKeySetDependency(keySet);
				sortColumns = sortColumns.filter(includeColumnsOnly);
				
				if (debug && keyCompare == null)
					trace(debugId(this), 'sort by [', sortColumns, ']');
				
				var compare:Function = keyCompare || SortedKeySet.generateCompareFunction(sortColumns, descendingFlags);
				// SortedKeySet should trigger callbacks
				var sorted:SortedKeySet = registerLinkableChild(this, new SortedKeySet(union, compare, sortColumns));
				_generatedKeySets = [union, sorted];
				
