I think this diff leaks the memory of the first diff