works for me; all run with what looks like correct result. (results at end) I did tidy/improve the code; still will fail on i(kk[ii[0]]) I suspect As I said this is a can of worms. Can you re-oull, build and try to see if I somehow fixed it by mistake Quoting mesca : > The bug appears when one of the index is a variable, whatever its > rate and whatever the number of dimensions: > > > > -o dac > > > > sr = 44100 > ksmps = 128 > nchnls = 2 > 0dbfs = 1 > > gkarr1[] init 2 > gkarr2[][] init 2, 2 > > instr set > gkarr1[0] = 1 > gkarr2[0][0] = 1 > endin > > instr get > i1 = i(gkarr1[0]) ; ok > i2 = i(gkarr2[0][0]) ; ok > i3 = i(gkarr1[p4]) ; fail > i4 = i(gkarr2[p4][p4]) ; fail > print i1 > print i2 > print i3 > print i4 > endin > > > > > i "set" 0 1 > i "get" 1 1 0 > > e > > > > .... STARTING FILE Creating options Creating orchestra Creating score rtaudio: ALSA module enabled rtmidi: ALSA Raw MIDI module enabled instr set uses instrument number 1 instr get uses instrument number 2 Elapsed time at end of orchestra compile: real: 0.003s, CPU: 0.003s sorting score ... ... done Elapsed time at end of score sort: real: 0.003s, CPU: 0.003s --Csound version 6.03.2 (double samples) May 31 2014 graphics suppressed, ascii substituted 0dBFS level = 1.0 orch now loaded audio buffered in 256 sample-frame blocks not writing to sound disk SECTION 1: new alloc for instr set: B 0.000 .. 1.000 T 1.001 TT 1.001 M: 0.00000 0.00000 new alloc for instr get: instr 2: i1 = 1.000 instr 2: i2 = 1.000 instr 2: i3 = 1.000 instr 2: i4 = 1.000 B 1.000 .. 2.000 T 2.000 TT 2.000 M: 0.00000 0.00000 Score finished in csoundPerform(). inactive allocs returned to freespace end of score. overall amps: 0.00000 0.00000 overall samples out of range: 0 0 0 errors in performance Elapsed time at end of performance: real: 0.004s, CPU: 0.004s