This is what I am facing :-
Array declaration -
05 WS-D1 OCCURS 10 TIMES INDEXED BY D1-IX.
10 WS-P1.
15 WS-P1-CNT PIC S9(04) COMP.
15 WS-P1-TBL.
20 WS-P1-ARRAY OCCURS 05 TIMES INDEXED BY P1-IX.
25 WS-P1-ID PIC S9(09) COMP.
10 FILLER X(10).
10 WS-P1.
15 WS-P1-CNT PIC S9(04) COMP.
15 WS-P1-TBL.
20 WS-P1-ARRAY OCCURS 05 TIMES INDEXED BY P1-IX.
25 WS-P1-ID PIC S9(09) COMP.
10 FILLER X(10).
The P1 array is of (10,5) size.
Now when i do MOVE WS-P1-ID(WS-IX1, WS-IX2) TO WS-TEMP-ID in a perform (a badly coded perform), it allows me to do this till the value of WS-IX2 is 75.
i.e. when it does MOVE WS-P1-ID(1, 76) TO WS-TEMP-ID it abends.

Now, more confusing part. I increased the FILLER from X(10) to X(100) in the above declaration. And now it is allowing the array to be performed till WS-IX2 is 84.
I may have sounded confused here (which i am actually..!!), so please let me know if you need more information.
Thank you,
Abhishek.
Code'd