Don't modify self.data outside collect_data, or things get unhappy.

Where 'unhappy' is the updater not finding a fixed point, and so cascading indefinitely.
Merge remote-tracking branch 'origin/master'