Yeah, but you didn't even rule out aiFinalYields[iJ] being 0. If aiFinalYields[iJ] = 0, you simply don't divide it by 2. So you still keep it at 0, just don't return a new 0 value to it with that operator. This is very strange to me, I have no idea why would it work this way, under any circumstances. It's some kind of relief that it's not something obvious that I misunderstood, as you don't have any ideas about the cause of this either. Thanks for your time, it was still useful to me!