It's not nessarily a poor design decision. There's been quite a bit of debate about this. It's really to keep programmers from doing:If args.length = args.length - 1 ; is OK, why do args.length -= 1 ; and args.length-- ; produce the compilation error 'args.length' is not an lvalue ? I hope it's a bug rather than a (poor) design decision. John Boucher The King had Humpty pushed.