The caching makes a lot of assumptions about how the ranges will react. A better immediate improvement here would be to use the cursor update signals instead to clear the cache. But, my point is this is not likely to be a noticable improvement anywhere. Why have more complex code for no benefit?