Why do you use `ask` here? I don't think navigating the owner chain requires synchronization. Anyway, you should never use `ask`, instead use `askOption`. `ask` has a number of problems:

* it may throw an exception and kill the thread that called it (unless you catch it, of course)
* it may not work if the presentation compiler can't start (and probably annoy the user with dialogs about `FatalError` exceptions)
* might deadlock or take too long (askOption has a default timeout). This is an issue we haven't been able to track down yet, but it may still happen.