The example was a simplified version of the actual port work. The example has problems after 30,000 entires, as does the actual port work, which has 11 seperate properties, including three delegates. As for your recommendation, I do agree. That would be preferred were it possible. However, there are strengths to using a ReadOnly array, namely compile-time array write checking rather than runtime checking, increased performance, and strong typing without a wrapper class. But the main issue here is which is wrong: the compiler compiling code that should not run, or the CLR crashing on code that should?