I suspect this will *always*, *reliably* be called on the wrong thread.