The threading change broke reversing changes because the reversing
code used an iterator and the threading code expected a list. We
don't need to keep a copy of the original, so just modify the list
in place when reversing, so we end up with a list in both cases.
Change-Id: I577546b09f35829c4a91e7f2922f21ed26b50a1c