Add guards to the complete document retireval process so that we
throw out bogus data if changes happen while we're waiting.

Helps fix #147