I am trying to update my NGUI up to 3.9.3 in Unity 4.6.7f1 and also got a problem on OnFontChanged().
The error occurs at line 985 in UILabel.cs
for (int i = 0, imax = mTempPanelList.Count; i < imax; ++i)
{
UIPanel p = mTempPanelList[i];
p.Refresh();
}
which told me that the index i is invalid and Unity throws out an ArgumentOutOfRangeException.
It seems that the mTempPanelList has been changed during the for loop performing.
When I found this post I tried to replace OnFontChanged as same as dafunker posted above, then everything seems work well.
I am not clearly know why it happens but thanks to dafunker for his/her effort.
Looking forward a better solution come out.