... or the deleterious effects of insomnia. i decided to see how hard this is. after considering "shift var", and hd and tl, i added ranges to rc, as in cpu% 8.out broken! a=(1 2 3 4) broken! echo $a(1 4) 1 4 broken! echo $a(2-3) 2 3 broken! echo $a(2-) 2 3 4 broken! fn myshift{echo $*; '*' = $*(2-) ; echo $*} broken! myshift 1 2 3 4 5 1 2 3 4 5 less than 20 lines of code. (attached so you can avert your eyes.) - erik