 			if (column == null)
 				return NaN;
 
-			if (detectLinkableObjectChange(cache, column))
+			// the cache becomes invalid when the trigger counter has changed
+			if (uint(cache[validateCache][column]) != column.triggerCounter)
 			{
 				var min:Number = NaN;
 				var max:Number = NaN;

				cache[getMean][column] = mean;
				cache[getVariance][column] = variance;
				cache[getStandardDeviation][column] = standardDeviation;
				cache[getRunningTotals][column] = runningTotals;
			}
			
			return cache[statsFunction][column];

				getSquareSum,
				getVariance,
				getStandardDeviation,
				getRunningTotals,
				validateCache
			];
			for each (var func:Function in functions)
				cache[func] = new Dictionary(true);
