Ciprian, i took a look at your code. And I like it, except some naming choices, but that is not a big deal. :) There's one thing is missing in NBSTInObjectArgument: bounds checking. I would also add an option to control generating code for bounds checking for indirect arguments, turned on by default. Mainly this is all about following method: NBSTInObjectArgument>>emitLoad: gen | baseAddress | gen proxy stackValue: stackIndex. + gen optCheckIndirectArgBounds ifTrue: [ + "generate code here to check that index is valid for passed argument, otherwise fail the primitive" + ] gen proxy fetchPointer: elementIndex - 1 ofObject: gen asm EAX. ^ gen asm EAX May i ask you to give me your nickname on squeaksource, so i will add you as developer, so you can upload code there? -- Best regards, Igor Stasenko.