If we did have a static cache, I guess we would need to invalidate it here.  Perhaps we could not disconnect the handler, but change to a limited-changes mode, where the cache is still maintained and any changes that invalidate events could be flagged to be fixed up when listening is reenabled.