fix #524: Reentrancy in 'external change' dialogs