I tried a less intrusive solution: if SystemClick has been called, then the next time that SystemTask is called it flushes the dirty volumes. This works, except if NoFinderZoom9 is installed, which suggests that this is the culprit. Apparently, the zooming effect serves a purpose: I guess it gives an asynchronous call from Finder time to complete before it processes the next Apple event. If NoFinderZoom9 is installed, then Finder processes the next Apple event with an invalid directory ID in the parameter block and this causes -110.